在工作中,我是一名培训师。我正在设置类(class)来教人们如何在没有鼠标的情况下“做事”......曾经见过人们点击“登录”文本框,输入,拿起鼠标,点击“密码”,输入他们的密码,然后再次拿起鼠标单击下面的“连接”按钮?
所以我会教他们如何在没有鼠标的情况下完成所有这些(当然还有许多其他事情)
在类(class)结束时,我会让他们通过某种考试。
所以我正在构建一个基于向导的小应用程序,其中我展示了一些要填写的表单的真实示例,但我想在他们进行此测试时以编程方式禁用他们的鼠标。
但是,在向导的后面,我将不得不让他们再次使用鼠标。
有没有一种可能很简单的方法可以暂时禁用鼠标,然后再重新启用它?
我正在使用 C# 2.0,在 VC# 2k5 下编程,如果这很重要的话
让您的表单实现 IMessageFilter
。
然后在表单中添加如下代码:
Rectangle BoundRect;
Rectangle OldRect = Rectangle.Empty;
private void EnableMouse()
{
Cursor.Clip = OldRect;
Cursor.Show();
Application.RemoveMessageFilter(this);
}
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 0x201 || m.Msg == 0x202 || m.Msg == 0x203) return true;
if (m.Msg == 0x204 || m.Msg == 0x205 || m.Msg == 0x206) return true;
return false;
}
private void DisableMouse()
{
OldRect = Cursor.Clip;
// Arbitrary location.
BoundRect = new Rectangle(50, 50, 1, 1);
Cursor.Clip = BoundRect;
Cursor.Hide();
Application.AddMessageFilter(this);
}
这将隐藏光标,使其无法移动并禁用鼠标左右键。