我有一个数据网格视图控件。现在我有两个文本框列。其中第一个我设置为密码。问题在于,每当我尝试在另一个文本框中编辑某些内容时,它同样会显示在屏蔽文本中。如何避免这种情况?
我的代码在
下面private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 1)
{
TextBox tb = e.Control as TextBox;
if (tb != null)
{
tb.PasswordChar = '*';
}
}
}
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 1 && e.Value != null)
{
e.Value = new string('*', e.Value.ToString().Length);
}
}
答案 0 :(得分:1)
这是解决方案:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox tb = e.Control as TextBox;
if (tb != null)
{
if (dataGridView1.CurrentCell.ColumnIndex == 1)
{
tb.PasswordChar = '*';
}
else
{
tb.PasswordChar = (char)0;
}
}
}
很快就会有解释。我现在可以说tb.PasswordChar
对所有textBox
都是'*'。还在检查原因
找到了解释here。基本上“DataGridView控件一次托管一个编辑控件”,因此更改一个单元格的PasswordChar
属性正在为整个DataGrid
编辑它。
研究这一点非常有趣。感谢