我对c#很陌生,我想做的第一件事就是通过尝试Key的组合事件来熟悉这个环境.
特别是,alt k.
我正在使用Microsoft Visual c#2010 Express.
我想测试该代码是否有效.
如果发现错误,请通知我:)
public void begin(object sender, KeyEventArgs ev)
{
if (ev.KeyCode == Keys.K && ev.Modifiers == Keys.Alt)
{
//display a message
}
}
但即使我从理论上知道在点击新项目时提出的项目的不同模型是什么以及它们的用途,我尝试了几个模型来测试该代码并没有成功.
简而言之,我不知道选择哪种模型以及在何处放置代码来测试那种简单的代码,更准确地说是使用极简主义gui处理事件(键鼠标).
有人可以帮我告诉我如何巧妙地开始使用c#中的事件?
提前问:)
最佳答案
MSDN Documentation就是您需要做的一个很好的例子.以下是一些重要部分:
>从简单的“Windows Forms”应用程序开始.虽然有许多其他类型的应用程序,WinForms是最简单的开始.
>连接KeyPress事件.在Form构造函数中,您需要告诉它在获取KeyPress事件时要执行的操作.如果您将函数的名称从上面的问题开始更改为Form1_KeyPress(以更准确地描述它的作用),则以下代码应该有效:
this.KeyPress = new KeyPressEventHandler(Form1_KeyPress);
>使用KeyPressEventArgs而不是KeyEventArgs.它可能会或可能不会产生巨大的差异,但最好使用最具体的EventArgs,以便您可以使用特定于它的属性.
>请注意KeyPressEventArgs.Handled
.如果您在表单上的其他对象上有KeyPress(或其他一些键盘事件),例如按钮或文本框,您需要说明事件是否在那里处理或是否应该冒泡到父级(在您的情况下,到表格).
编辑(谢谢@RBarryYoung):
>在表单构造函数中设置this.KeyPreview = true
.为了让您的表单接收在子控件(例如按钮和文本框)上发生的键盘事件,如本文上方的提示中所述,您需要将此属性设置为true以允许表单首先查看在孩子身上发生的键盘事件. (注意:当然,如果您希望表单看到这些事件,则此提示和前一个提示仅适用.有时,您可能希望将键盘快捷键捕获到子控件中而不是在父控件中处理.)