Tag:开源控件 , 源码下载 , 控件开发 , 控件美化 , 窗体换肤 , Skin , QQ表情 , Windows API , GDI+编程 , SQLite , Socket , 控件透明 , 下拉控件 , HTML 解析器 , 图片水印 , ScrollBar(滚动条) , Google Sitemap , 数据库 , SQL , WinForm , P/Invoke , ToolStripDropDown使用方法 , PopupControlHost

 
您的位置: >> 首页 >> C# 视角 >> C# 用ToolStripDropDown实现任意Windows控件弹出显示

C# 用ToolStripDropDown实现任意Windows控件弹出显示

2009-09-02  来自:CS 程序员之窗  字体大小:【  
  • 摘要:C#利用ToolStripDropDown类轻松实现像QQ的表情控件和QQ用户信息类似的弹出窗口效果,而且对任意Windows控件和自定义控件都有效。

    QQ的用户信息的显示和QQ表情的显示,不但可以像ToolTip那样不抢占主窗口的激活状态(Active),而且在主窗口失去焦点或者有其他操作的时候就自动关闭了,还可以在上面放任意的控件,而且可以接受用户操作。.NET自带的ToolTip就只能显示信息,是不能操作的,而且也不能把任意Windows控件加载上去。很多人用一个窗口(Form)来实现这样的提示或者信息窗口,但是要处理很多东西,而且不一定能完全实现这样的效果。其实ToolStripDropDown可以非常方便的实现这个效果,如果你细心观察的话,你就会发现ContextMenuStrip就是继承自ToolStripDropDown实现的。前面写的文章中,其实有2篇(类似QQ表情的控件 EmotionContainer 显示透明的弹出窗体)已经用到过ToolStripDropDown,只是没有详细的介绍。这篇文章就来介绍它,并且继承ToolStripDropDown实现了一个PopupControlHost类,可以非常方便的使用它实现弹出信息显示,还实现了一些其他效果,而且还可以显示不规则外观的控件。

    PopupControlHost实现了几个功能:改变边框颜色、改变大小、改变显示区域、按下ALT键是否关闭。还提供了几个函数,方便控制显示的位置。具体实现代码就不贴了,看下类的视图:

    介绍一下几个属性的作用:

1、  AcceptAlt:设置按下ALT键是否关闭。

2、  BorderColor:设置边框的颜色。

3、  CanResize:设置是否可以改变大小。

4、  ChangeRegion:是否根据加载的控件的显示区域改变ToolStripDropDown的显示区域。

5、  OpenFocused:设置打开后是否把焦点设置到加载的控件上。

在示例中,实现了一个不规则控件RegionControl,它有点类似ToolTip的样式,这个主要是通过改变控件的Region实现的。最后看看效果:

声明:

本文版权归作者和CS 程序员之窗所有,欢迎转载,转载必须保留以下版权信息,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

作者:Starts_2000

出处:CS 程序员之窗 http://www.csharpwin.com

你可以免费使用或修改提供的源代码,但请保留源代码中的版权信息,详情请查看:

CS程序员之窗开源协议 http://www.csharpwin.com/csol.html