我将表单的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);
}
在内部“if”上设置了断点,我第一次在单元格中输入一个值(大概是长度为0或长度为1,但在此时查看currentCell的值,它是“格式化文本“值==”“,我没有看到任何其他可能的属性来辨别单元格内容是什么。”
“if”失败,它落入“返回基础”。线。
当我在单元格中输入第二个值时(单元格中可见的内容从“2”变为“22”),我甚至都没有到达断点。为什么???
注意:这是我在此处提出的问题的变体:How can I programmatically move from one cell in a datagridview to another?
答案 0 :(得分:1)
现在你正在测试该框中值的文本表示是否只有一个字符的长度。
如果我理解你的问题你应该尝试
currentCell.Value.ToString().Length > 0