如何以编程方式使控件的工具提示显示在Winforms应用程序中,而无需将鼠标悬停在控件上? (如果需要,可以使用P / Invoke)。
答案 0 :(得分:24)
如果您在表单上使用Tooltip
控件,则可以这样执行:
ToolTip1.Show("Text to display", Control)
MSDN documentation for the ToolTip control's "Show" method具有所有不同的变体以及如何使用它们。
答案 1 :(得分:9)
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello");
工具提示将设置在控件“textBox1”上。
请阅读:
答案 2 :(得分:1)
首先您需要向表单添加工具提示控件 第二步将工具提示控件附加到您希望工具提示显示的某些控件上(MyControl) 第三个这样做: Tooltip1.Show(“我的工具提示文字”,MyControl)
答案 3 :(得分:1)
凯文,如果你想创建自己的气球,请阅读以下链接:Task 3: Showing Balloon tips。提到了带有TOOLTIPS_CLASS常量的NativeMethods类。
答案 4 :(得分:0)
如果您为整个表单创建私有变量,您将能够调用sub并调整初始延迟。
Public Class MyForm
Private MyTooltip As New ToolTip
...
Sub ApplyToolTips
'For default
ApplyToolTips (1000)
End Sub
Sub ApplyTooltips (ByVal Delay as Integer)
MyTooltip .InitialDelay = Delay
MyTooltip.AutoPopDelay = 5000
...
MyTooltip.SetToolTip(Me.btnClose, "Close the form")
End Sub
Private Sub Btn_Click(sender As System.Object, e As System.EventArgs) Handles Btn.Click
Dim PicBox As PictureBox = CType(sender, PictureBox)
ApplyTooltips (0)
ApplyTooltips (1000)
End Sub
答案 5 :(得分:-1)
这是我使用的代码:
static HWND hwndToolTip = NULL;
void CreateToolTip( HWND hWndControl, TCHAR *tipText )
{
BOOL success;
if( hwndToolTip == NULL )
{
hwndToolTip = CreateWindow( TOOLTIPS_CLASS,
NULL,
WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL,
hInstResource,
NULL );
}
if( hwndToolTip )
{
TOOLINFO ti;
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_TRANSPARENT | TTF_SUBCLASS;
ti.hwnd = hWndControl;
ti.uId = 0;
ti.hinst = NULL;
ti.lpszText = tipText;
GetClientRect( hWndControl, &ti.rect );
success = SendMessage( hwndToolTip, TTM_ADDTOOL, 0, (LPARAM) &ti );
}
}
调用CreateToolTip函数为特定控件创建工具提示。