0

計算など、datagridview でアクションを実行したい。ユーザーがテキストボックスに金額を入力すると、その分割払いを計算したいと思います。問題は、datagridview にコンボボックスもあるということです。グリッド コンボボックスから何かを選択すると、コードで例外が発生するため、ユーザーがコンボボックスをクリックしたときに計算を停止したいと考えています。
ユーザーがコンボボックスから何かをクリックまたは選択したかどうかを知るにはどうすればよいですか?

private void prol04DataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
     TextBox tx = e.Control as TextBox;
     // Below line i am geting error Because i select combobox in datagrid
     DataGridViewTextBoxCell cell = DataGridViewTextBoxCell)prol04DataGridView.CurrentCell;
     if (tx != null && cell.OwningColumn == prol04DataGridView.Columns[5])
     {
         tx.TextChanged -= new EventHandler(tx_TextChanged);
         tx.TextChanged += new EventHandler(tx_TextChanged);
     }             
}

では、データグリッドのどのコントロールでユーザーがアクションを実行したかを見つけるにはどうすればよいでしょうか?

4

1 に答える 1

2

e.Control を TextBox にキャストするために使用したのと同じロジックを CurrentCell にも適用します。

 TextBox tx = e.Control as TextBox;
 DataGridViewTextBoxCell cell = prol04DataGridView.CurrentCell as DataGridViewTextBoxCell;
 if (tx != null && cell != null && cell.OwningColumn == prol04DataGridView.Columns[5])
 {
       tx.TextChanged -= new EventHandler(tx_TextChanged);
       tx.TextChanged += new EventHandler(tx_TextChanged);

 }
于 2013-06-04T13:40:41.663 に答える