引子:这个控件的功能是为了达到窗体显示的多选项卡式样管理,采用了类似Tabcontrol的效果来管理窗体.
一.设计时效果
二.运行时效果
三.简单谈谈实现思路
应该说这是一个绘制窗体管理样式的控件.由2个部分组成.一部分就是绘制窗体名称的控件,另一部分就是显示窗体的Panel,在这个Panel中,我们将Form以Toplevel = false的设置后加入Panel中.同时,根据对一个Form集合的循环来绘制出这些窗体的显示标题,并通过判断鼠标点击位置来获得当前选中的Form,同时,我们还根据FirstVisbleForm来判断哪个FORM的绘制部分要显示出来哪些不需要显示出来.
如果,哪位朋友对源代码感兴趣,欢迎发送mail来询问购买细节.当然,我也欢迎对实现技术的讨论,但不是很喜欢直接索取源代码的方式,也请大家谅解了.
四.部分源代码
public
partial
class
JcsFormHeader : UserControl
...
{
public JcsFormHeader()
...{
InitializeComponent();
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.ResizeRedraw, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
SetStyle(ControlStyles.Selectable, true);
this.Height = DEF_HEADER_HEIGHT;

本文介绍了一种实现类似Visual Studio多选项卡窗体布局的控件,采用Tabcontrol效果管理窗体。控件由两部分构成:绘制窗体标题的控件和显示窗体内容的Panel。通过在Panel中嵌入Toplevel为false的Form,并循环绘制窗体标题,响应鼠标点击选择当前窗体。作者提供了部分源代码,并鼓励对实现技术进行讨论。
最低0.47元/天 解锁文章
1040

被折叠的 条评论
为什么被折叠?



