2012-09-25 73 views
5

datagridviewの列をパスワードcharを含む列として表示したいのですが、なぜこのイベントが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

イベントの配線を再試行しましたか?これを最初から再度バインドするときに動作するかどうか確認してください。 –

+0

@ arjunshetty2020私はあなたが最初にもう一度これをバインドすることによって何を意味するのか分かりません。 –

+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; 
    } 
    } 
} 
+0

私は間違っていますが、私の 'e'は' ColumnIndex'プロパティを持っていません。 – Disasterkid

+1

if(e.ColumnIndex == 3)の代わりにif(grid.CurrentCell.ColumnIndex == 3) –

関連する問題