1
我将我的表单的KeyPreview设置为true。为什么我的事件处理程序只输入一次?
我试图移动到下一个单元格,如果DataGridView单元格已经有一个值。我有这样的代码:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (this.ActiveControl == dataGridViewPlatypus)
{
var currentCell = dataGridViewPlatypus.CurrentCell;
if (currentCell.Value.ToString().Length == 1)
{
;//Now what?
SendKeys.Send("{DOWN}");
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
设置于内“如果”我到那里,我第一次在一个单元格中输入一个值(断点想必它要么是长度为0或1的长度,但看着在当前currentCell的值,它是“格式化文本”值==“”,我没有看到任何其他可能的属性来辨别单元格内容是什么)。
“如果”失败,并且它下降到“返回基地”。线。
当我在单元格中输入第二个值时(例如单元格中的可见内容从“2”更改为“22”),我甚至没有达到断点。为什么???
注:这是一个问题,我问这里的变化:How can I programmatically move from one cell in a datagridview to another?
应该总是要么是0或1,因为当1应该下降到下一个单元格。无论如何,事件处理程序只能输入一次。 –