datagridview - how to search a cell in a grid one by one when key press in c# -
how search cell in grid 1 one when key press in c#
?
i try key press event
several times didn't work.
there exception .
private void datagridview1_keypress(object sender, keypresseventargs e) { if (char.isletter(e.keychar)) { (int = 0; < (datagridview1.rows.count); i++) { if (datagridview1.rows[i].cells[0].value.tostring().startswith(e.keychar.tostring(), true, cultureinfo.invariantculture)) { list.add(datagridview1.rows[i].cells[0].value.tostring()); if (datagridview1.rows[i].cells[0].value.tostring() == list[i].tostring()) { datagridview1.rows[i].cells[0].selected = true; } //datagridview1.rows[i].cells[0].selected = true; /*if (datagridview1.rows[i].cells[0].selected == true) { datagridview1.rows[i].cells[0].selected = false; } */ // stop looping } } } }
this line not make sense, , may result in indexoutofboundexception argumentoutofrangeexception
not every row may added list, i
may larger list count.
if (datagridview1.rows[i].cells[0].value.tostring() == list[i].tostring())
remove list , should work:
private int lastindex; private char lastkey; private void datagridview1_keypress(object sender, keypresseventargs e) { if (char.isletter(e.keychar)) { (int = 0; < (datagridview1.rows.count); i++) { if (datagridview1.rows[i].cells[0].value.tostring().startswith(e.keychar.tostring(), true, cultureinfo.invariantculture)) { if (lastkey == e.keychar && lastindex < i) { continue; } lastkey = e.keychar; lastindex = i; datagridview1.rows[i].cells[0].selected = true; return; } } } }
Comments
Post a Comment