将DataGridView中的列显示为密码输入类型

时间:2012-09-25 17:53:06

标签: c# winforms datagridview

我想在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);
            }
        }
    }

请帮助。

1 个答案:

答案 0 :(得分:6)

您可以处理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;
    }
    }
}