Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows窗体帮助按钮更改光标_C#_Winforms - Fatal编程技术网

C# Windows窗体帮助按钮更改光标

C# Windows窗体帮助按钮更改光标,c#,winforms,C#,Winforms,我在Windows窗体应用程序上有一个。单击时,我只希望它显示一个消息框。这很好用 private void Form1_HelpButtonClicked(object sender, EventArgs e) { MessageBox.Show("This is an awesome program", "Awesome Program"); } 问题是,当用户关闭消息框时,表单光标切换到带有问号的“帮助”光标。这不好。如何防止光标更改?我尝试在消息框调用后放置this.Cur

我在Windows窗体应用程序上有一个。单击时,我只希望它显示一个消息框。这很好用

private void Form1_HelpButtonClicked(object sender, EventArgs e)
{
    MessageBox.Show("This is an awesome program", "Awesome Program");
}  

问题是,当用户关闭消息框时,表单光标切换到带有问号的“帮助”光标。这不好。如何防止光标更改?我尝试在消息框调用后放置
this.Cursors=Cursors.Default
this.Cursors=Cursors.Arrow
,但无效。

您希望处理HelpRequested事件,并将事件参数的Handled属性设置为true,而不必处理HelpButtonClicked事件

private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
    {
        MessageBox.Show("This is an awesome program", "Awesome Program");
        hlpevent.Handled = true;
    }

尝试更改静态属性。

您的事件处理程序声明不正确,
e
参数实际上是CancelEventArgs类型。现在很简单:

    private void Form1_HelpButtonClicked(object sender, CancelEventArgs e) {
        MessageBox.Show("This is a more awesome program", "Awesome Program");
        e.Cancel = true;
    }

不,这不是我想要的,因为单击“帮助”按钮时不会触发
HelpRequested
,而是在右键单击表单上的另一个元素(光标已更改)后触发。我知道上面已经回答了。我希望你能看到这个问题!WinForms先生本人,谢谢您,先生。顺便问一下,您如何在IDE中自动生成这些声明,IDE是属性窗口中的一个la Visual Basic?闪电图标。双击事件名称。谢谢!我知道一定有办法,只是补充一下,初始化表单时还需要注册事件处理程序,如下所示:
this.HelpButtonClicked+=Form1\u HelpButtonClicked这让我有一段时间不知所措,因为我通常是一名VB程序员。