我想在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);
}
}
}
请帮助。
答案 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;
}
}
}