2013-06-04 2 views
0

Я хочу выполнить действие в datagridview, как расчет. Когда пользователь вводит Amount в текстовое поле, я хочу рассчитать его взнос. Проблема в том, что у меня есть также поле со списком в моем datagridview. Когда я выбираю что-то из сетки combobox, я получаю исключение в своем коде, поэтому я хочу прекратить выполнять мои вычисления, когда пользователь нажимает на combobox.
Как узнать, нажал ли пользователь или что-то выберет из combobox?который управляет щелчком в 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); 
    }    
} 

Как я могу найти, на каком контроле на datagrid пользователь выполнил действие?

+0

Тот факт, что 'ТХ == null' должен намекнуть, что это не' TextBox' клетки. – SimpleVar

+0

@Steve execption 'Unable to cast object of type 'System.Windows.Forms.DataGridViewComboBoxCell' для типа 'System.Windows.Forms.DataGridViewTextBoxCell'.' – Abhishek

ответ

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

} 
+0

Я поддерживаю это, так как это правильно, но могу ли я предложить добавить что можно получить индекс столбца текущей ячейки или собственный столбец и использовать это, чтобы проверить, что вы находитесь в правильном столбце. Полезно, если (например) у вас есть столбцы текстового поля и вы хотите работать только на одном. –

+0

Спасибо за свою работу за меня, у меня есть ответ на ваш ответ :) Но если я хочу узнать, какой тип ячейки щелкнул, как я могу это знать. – Abhishek

Смежные вопросы