在Winforms应用程序中以编程方式显示工具提示

时间:2020-03-05 18:53:36  来源:igfitidea点击:

如何以编程方式使控件的工具提示显示在Winforms应用程序中,而无需将鼠标悬停在控件上? (如有必要,可以进行P / Invoke)。

解决方案

回答

这是我使用的代码:

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函数为某个控件创建工具提示。

回答

System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello");

工具提示将在控件" textBox1"上设置。

在这里阅读:

http://msdn.microsoft.com/en-us/library/aa288412.aspx

回答

如果我们在表单上使用"工具提示"控件,则可以这样操作:

`ToolTip1.Show("要显示的文本",控制)

有关工具提示控件的"显示"方法的MSDN文档,此文档以及如何使用它们都有所有不同的变体。

回答

首先,我们需要向表单添加工具提示控件
其次,将工具提示控件添加到我们希望工具提示显示在(MyControl)上的某些控件上
第三,这样做:
Tooltip1.Show("我的工具提示文本",MyControl)