首先向大家问候,这是我第一篇帖子。
我是C#的新手,所以解决方案可能很明显。
我有一个包含名称和日期数据的DataGridView。当双击日期列时,会显示DateTimePicker以选择日期。如果按下Escape键,则DateTimePicker将隐藏并恢复旧数据。 当运行代码并在最后一行中双击日期列时,DateTimePicker弹出,但不会读取Esc键。 如果在最后一行之前的某一行中执行相同的操作,则Esc键正常工作。 如果首先在其他某一行中执行相同的操作,然后在最后一行中执行相同的操作,则Esc键再次正常工作。 唯一的问题是当DateTimePicker首先在最后一行中激活时。也适用于Enter键
用于键盘读取和DateTimePicker处理
private void dateTimePicker1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) { CellAddValue(1, dateTimePicker1.Value); }
if (e.KeyCode == Keys.Escape) { CellAddValue(1, dateWhenSelDate); }
}
public void CellAddValue(int o, DateTime date)
{
string dateString = date.ToString(dateFormat);
if (DateTime.Compare(date, dateTimePicker1.MinDate) == 0) { dateString = ""; }
dataGridView1.Rows[selectedRow].Cells[selectedColumn].Value = dateString;
if (o == 1)
{
dateTimePicker1.Hide();
dataGridView1.Focus();
}
}
有没有一些设置或选项,我必须设置才能正常工作? 谢谢