为什么其他文本框也在datagridview控件中获取掩码?

时间:2013-07-08 04:42:09

标签: winforms datagridview

我有一个数据网格视图控件。现在我有两个文本框列。其中第一个我设置为密码。问题在于,每当我尝试在另一个文本框中编辑某些内容时,它同样会显示在屏蔽文本中。如何避免这种情况?

我的代码在

下面
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);

   }
}

1 个答案:

答案 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编辑它。  研究这一点非常有趣。感谢