gpt4 book ai didi

c# - 当 DataGridView 具有焦点时,如何让 "Accept"按钮触发?

转载 作者:太空狗 更新时间:2023-10-30 00:11:46 25 4
gpt4 key购买 nike

我将表单呈现为对话框。该窗体包含一个 DataGridView、一个 TextBox 和 OK/Cancel 按钮,如下所示:

enter image description here

  • 我已将表单的 AcceptButton 属性设置为确定按钮,并将表单的 CancelButton 属性设置为取消按钮。
  • 我已将“确定”按钮的 DialogResult 属性设置为“确定”,将“取消”按钮的 DialogResult 属性设置为“取消”

如果文本框有焦点,则按 Enter 键关闭窗体,对话框结果为 OK。但是,如果 DataGridView 具有焦点,则按 Enter 不会关闭表单。

但是,按 Escape 键总是会导致窗体关闭并显示 Cancel 的 DialogResult。

这是一个两部分的问题:

  1. 当 DataGridView 获得焦点时,Enter 键的行为不一致的原因是什么?
  2. 当 DataGridView 具有焦点时,如何使 Enter 关闭窗体并使 DialogResult 为 OK?

最佳答案

DataGridView 使用回车键移动到当前正在编辑的单元格下方的单元格。没有单一属性可以更改此行为,但您可以覆盖网格的按键行为:

dataGridView1.KeyDown += new KeyEventHandler(dataGridView1_KeyDown);

void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
button1.PerformClick();
e.Handled = true;
}
}

这仍然为您留下用于导航的箭头键,并且仍然允许用户添加新行(一旦在网格的底行中输入数据,新行就会出现)。

关于c# - 当 DataGridView 具有焦点时,如何让 "Accept"按钮触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com