如何在Windows窗体中向“X”添加工具提示?

时间:2011-02-17 21:48:01

标签: vb.net visual-studio-2008

我目前正在使用VB.Net在Visual Studio 2008中编程。我被要求在上部关闭按钮(最大化和最小化按钮旁边的表单右上角的“X”)中添加工具提示。

无论如何,我能做到这一点吗?

解决方案:

我用@Saman的答案解决了这个问题并稍微改了一下,所以我想我会发布它以防万一有人通过这个问题或@ Saman的确切答案解决了问题。

首先,我将工具箱中的工具提示添加到我的表单中。我没有必要禁用最小化,最大化和关闭的工具提示,它通常不会出现。然后,我使用@Saman函数进行了一次小改动:

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)

    If m.Msg = 160 And m.WParam = 20 Then
        ToolTip1.SetToolTip(Me, "Save and Close")
    Else
        MyBase.WndProc(m)
    End If
End Sub

正如您所看到的,我使用ToolTip1.Show()而不是ToolTip1.SetToolTip()。我发现show它不常用,但是setToolTip它将('X')关闭按钮的工具提示设置为我的新文本(“保存并关闭”),因此它显示出来每当我的鼠标移过关闭按钮时。

2 个答案:

答案 0 :(得分:1)

首先,您必须在此处禁用最小化,最大化和关闭按钮的工具提示以及一些有用的链接: HOW To Disable ToolTips for Minimize, Maximize, and Close button

在这里: Disable tooltips for Minimize, Restore and Close button

然后您可以使用此代码显示您的工具提示:

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)

        If m.Msg = 160 And m.WParam = 20 Then
            ToolTip1.Show("CLoseeeeee", Me)
        Else
            MyBase.WndProc(m)
        End If
End Sub

答案 1 :(得分:0)

我认为.Net内部不可能(即使用简单的托管代码)。关闭,最小化和最大化按钮由.Net CLR之外的OS定义。 (您可以确定他们在表单上的可见性,但我认为这是关于它的。)

如果可以添加工具提示,则需要调用非托管Windows API。

试着在这里寻找开始: http://pinvoke.net