我试着在datagridview cell keypress事件上弹出一个选择框。选择框弹出工作但上下键没有触发我想向下移动选择框数据同时从datagridview单元格按下向上和向下键
这些代码正在使用
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
DataGridView dttmp = (DataGridView)sender;
csearch = "";
var txtbox = e.Control as TextBox;
if (txtbox != null)
{
txtbox.KeyPress -= new KeyPressEventHandler(textBoxPart_TextChanged);
txtbox.KeyPress += new KeyPressEventHandler(textBoxPart_TextChanged);
txtbox.Validating -= new CancelEventHandler(txtbox_Validating);
txtbox.Validating += new CancelEventHandler(txtbox_Validating);
txtbox.LostFocus += new EventHandler(txtbox_LostFocus);
}
}
private void textBoxPart_TextChanged(object sender, KeyPressEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 1)
{
if (e.KeyChar == Convert.ToChar(Keys.Up))
{
if (srchbox.Rows.Count > 1)
{
int curind = srchbox.CurrentRow.Index;
//srchbox.Rows[curind - 1].Selected = true;
if (curind - 1 >= 0)
{
srchbox.CurrentCell = srchbox.Rows[curind - 1].Cells[1];
srchbox.Refresh();
}
}
e.Handled = true;
}
}
答案 0 :(得分:1)
改为使用keydown或keyup事件。
Control.KeyPress documentation州:
KeyPress事件不是由非字符键引发的;但是,非字符键确实会引发KeyDown和KeyUp事件。
答案 1 :(得分:1)