I have Bound Datagridview and and trying to access of editing control as below:
private void newdgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (newdgv.CurrentCell.ColumnIndex ==0) { if (e.Control is TextBox) { TextBox tbox = e.Control as TextBox; tbox.KeyDown += new KeyEventHandler(tbox_KeyDown); tbox.TextChanged += new EventHandler(tbox_TextChanged); } } } private void tbox_TextChanged(object sender, EventArgs e) { TextBox tbox = (TextBox)sender; if (tbox.Text.Length > 2) { listBox2.Visible = true; button2.Visible = true; int inddex = listBox2.FindString(tbox.Text); if (inddex != -1) { listBox2.SetSelected(inddex, true); listBox2.Focus(); } } tbox.TextChanged -= new EventHandler(tbox_TextChanged); }
Above at tbox_Texchanged EventHandller I am trying to Revoke the access of the same due to avoid of repeating same task on other columns's control. But it won't allow me above task. I can't see Listbox2 on passing the text limit of control.
Now look at the same example in other way:
private void newdgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (newdgv.CurrentCell.ColumnIndex ==0) { if (e.Control is TextBox) { TextBox tbox = e.Control as TextBox; tbox.KeyDown += new KeyEventHandler(tbox_KeyDown); tbox.TextChanged -= new EventHandler(tbox_TextChanged); tbox.TextChanged += new EventHandler(tbox_TextChanged); } } } private void tbox_TextChanged(object sender, EventArgs e) { TextBox tbox = (TextBox)sender; if (tbox.Text.Length > 2) { listBox2.Visible = true; button2.Visible = true; int inddex = listBox2.FindString(tbox.Text); if (inddex != -1) { listBox2.SetSelected(inddex, true); listBox2.Focus(); } }}
Now see here it is allowed to see listbox2 on Column "0" and "1" Controls by passing of text limit. But I just want to fire the even on only column="0"'s Controls Not on Columns="1"'s Controls.
I Confused Bewteen Revoke the Access Of EventHandller.
How to Do?.