我有一个非常简单的 C# WinForm 示例:
private System.Windows.Forms.ContextMenuStrip ct1;
var header = new ToolStripMenuItem("Header with long test like Lorem Ipsum");
header.Enabled = false;
var txt = new ToolStripTextBox();
txt.Text = "changeme";
ct1.Items.Clear();
ct1.Items.Add(header);
ct1.Items.Add(txt);
ct1.Show(x,y);
现在我有两个问题:
像这样:
private void ct1_Closing(object sender, ToolStripDropDownClosingEventArgs e)
{
e.Cancel = (e.CloseReason == ToolStripDropDownCloseReason.Keyboard);
}
但是我希望能够通过按 Escape 来关闭,并且我还希望能够使用 Alt 键作为输入。
但现在 Alt 和 Escape 要么全有,要么全无。我怎样才能区分它们?
甚至在 TextBox 和 的 KeyDown 事件上都进行了尝试ct1
,但 Alt 键未转发到那里。