6

我想将datagridview中的一列显示为包含密码字符的列。我无法弄清楚为什么datagridview没有触发此事件。

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if(e.ColumnIndex == 3)
        {
            if(e.Value != null)
            {
                e.Value = new string('*', e.Value.ToString().Length);
            }
        }
    }

请帮忙。

4

1 回答 1

7

您可以处理该EditingControlShowing事件,然后将编辑控件转换为 TextBox 并手动将 UseSystemPasswordChar 设置为 true。

private void dataGridView1_EditingControlShowing(object sender, 
    DataGridViewEditingControlShowingEventArgs e)
{
    if(e.ColumnIndex == 3)//select target column
    {
    TextBox textBox = e.Control as TextBox;
    if (textBox != null)
    {
        textBox.UseSystemPasswordChar = true;
    }
    }
}   
于 2012-09-25T19:08:56.057 回答