DataGridViewCell 陷阱 CTRL+Up 或 CTRL+Down
DataGridViewCell trap CTRL+Up or CTRL+Down
C# 窗体有一个 datagridview
。我需要在 CTRL+UP 箭头或 CTRL+Down 时捕获一个事件 在编辑模式下 单元格 中按下了箭头。
不确定要处理哪个事件以及应该如何处理。
像这样处理 DataGridView
的 KeyUp
事件:
private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.Up)
MessageBox.Show(string.Format("Ctrl+{0}",e.KeyCode.ToString()));
else if (e.Control && e.KeyCode == Keys.Down)
MessageBox.Show(string.Format("Ctrl+{0}", e.KeyCode.ToString()));
}
添加实际 运行 代码时得到的打印屏幕:
来自 MSDN:
The conditional-AND operator (&&) performs a logical-AND of its bool
operands, but only evaluates its second operand if necessary.
https://msdn.microsoft.com/en-us/library/2a723cdk%28v=vs.140%29.aspx
The & operator can function as either a unary or a binary operator.
https://msdn.microsoft.com/en-us/library/sbf85k1c%28v=vs.140%29.aspx
因为在我的代码中两个操作数都是 bool
,所以 &&
是首选选项,尽管我用 &
进行了测试并且它也能正常工作。 &&
也更有效,因为它仅在必要时才测试第二个操作数。
C# 窗体有一个 datagridview
。我需要在 CTRL+UP 箭头或 CTRL+Down 时捕获一个事件 在编辑模式下 单元格 中按下了箭头。
不确定要处理哪个事件以及应该如何处理。
像这样处理 DataGridView
的 KeyUp
事件:
private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.Up)
MessageBox.Show(string.Format("Ctrl+{0}",e.KeyCode.ToString()));
else if (e.Control && e.KeyCode == Keys.Down)
MessageBox.Show(string.Format("Ctrl+{0}", e.KeyCode.ToString()));
}
添加实际 运行 代码时得到的打印屏幕:
来自 MSDN:
The conditional-AND operator (&&) performs a logical-AND of its bool operands, but only evaluates its second operand if necessary.
https://msdn.microsoft.com/en-us/library/2a723cdk%28v=vs.140%29.aspx
The & operator can function as either a unary or a binary operator.
https://msdn.microsoft.com/en-us/library/sbf85k1c%28v=vs.140%29.aspx
因为在我的代码中两个操作数都是 bool
,所以 &&
是首选选项,尽管我用 &
进行了测试并且它也能正常工作。 &&
也更有效,因为它仅在必要时才测试第二个操作数。