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應該下降到下一個單元格。無論如何,事件處理程序只能輸入一次。 –