我正在尝试定义MouseEventHandlers,以便只要单击鼠标或移动鼠标或按下某个键,应用程序就会退出。这是我第一次使用C#,但根据我在网上找到的内容,我编写了如下代码:
MouseDown += new MouseEventHandler(mouseClickedResponse);
MouseMove += new MouseEventHandler(mouseMovedResponse);
KeyDown += new KeyEventHandler(keyResponse);
连接到:
private void keyResponse(object sender, EventArgs e)
{
Application.Exit();
}
private void mouseClickedResponse(object sender, EventArgs e)
{
Application.Exit();
}
private void mouseMovedResponse(object sender, EventArgs e)
{
if (firstCall) //Keeps the application from exiting immediately
firstCall = false;
else Application.Exit();
}
我发现的问题是,当KeyEventHandler完美运行时,我可以移动并单击鼠标尽可能无效。
这是我为允许用户控制而编写的代码的总和;我错过了什么吗?
答案 0 :(得分:1)
从表面上看,代码的一切看起来都不错。
一种可能性 - MouseEventHandler
(MSDN)命名空间以及System.Windows.Input
命名空间(MSDN)中都定义了System.Windows.Forms
。
我相信你想要的是Forms
命名空间中的那个。您是否可能使用Input
命名空间中的那个?
答案 1 :(得分:0)
试试这个......
MouseClick += new System.Windows.Forms.MouseEventHandler(Form1_mouseClickedResponse);
MouseMove += new System.Windows.Forms.MouseEventHandler(Form1_mouseMovedResponse);
然后
private void Form1_mouseClickedResponse(object sender, MouseEventArgs e)
{
Application.Exit();
}
private void Form1_mouseMovedResponse(object sender, MouseEventArgs e)
{
Application.Exit();
}
...将Form1替换为表单名称。
答案 2 :(得分:0)
我解决了我的问题 - 我的Form
充满了Panels
,并且通过将鼠标输入的代码移动到面板上,一切都立即起作用。
答案 3 :(得分:0)
变化:
private void mouseClickedResponse(object sender, EventArgs e)
为:
private void mouseClickedResponse(object sender, MouseEventArgs e)
它应该可以正常工作。