锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C#开源 / C#界面控件 / 以底层窗口风格方式实现C#窗体Tooltip气泡风格
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发

锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容。

以底层窗口风格方式实现C#窗体Tooltip气泡风格


背景

提示小窗口最早出现在工具栏上,后来发展到窗体控件上都可以带提示小窗口,有了提示,可以给用户更多控件功能上的指示,更有利于用户使用,不过提示小窗口Tooltip不经常用,有时候遇到这个情况会难以解决问题,气泡风格比标准风格更形象一些,这里翻译一个codeproject上的文章,给大家一个实现方法。

 

介绍

有很多关于“气球”工具提示的文章,许多用类编写的代码都解决了这个问题。在这里,我展示了另一种我认为最简单且不会影响现有System.Windows.Forms.ToolTip实现的解决方案。

解决方案

可能你知道,反射是 .NET Framework 的一大优势,我想这次也会用到它。System.Windows.Forms.ToolTip类持有本机工具提示窗口的句柄。这个句柄是非公开的,所以我们需要使用反射来获取这个成员。然后,我们可以将窗口的样式更改为“ balloon”。

用法

需要SetBalloonStyle从创建工具提示窗口句柄的位置调用函数。在我的示例中,我OnLoad在Form. 如果使用无效的句柄调用函数,则会抛出异常。

C#
protected override void OnLoad(EventArgs e)
{
  base.OnLoad (e);  
  // set toolTip native window style to "balloon".
  NativeMethods.SetBalloonStyle ( toolTip1 );
}

注:打开代码,也没有UserControl这种类或Tooltip的派生类,底层相关的代码如下:

		public static void SetBalloonStyle ( ToolTip toolTip )
		{
			NativeWindow window = GetNativeWindow ( toolTip );
 			NativeMethods.SetWindowLong ( window.Handle, GWL_STYLE , WS_POPUP | TTS_BALLOON | TTS_NOFADE );
			
		}

用到了窗口属性,窗口句柄这类底层机制。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内劳动服务器公司办公楼一层