dockpanelsuite的一些修改

本文介绍了如何使用DockPanelsuite控件创建类似VS的界面,并分享了作者对控件的两个修改:实现双击关闭功能和调整标签颜色。详细修改步骤可在提供的下载链接中查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个可以做出类似VS的免费控件,下载网址:http://sourceforge.net/projects/dockpanelsuite/

方便应用,做了一些修改:

1.修改双击关闭(在DockPaneStripBase的WndProc方法里)

else if (m.Msg == (int)Win32.Msgs.WM_LBUTTONDBLCLK)
{
    base.WndProc(ref m);
   int index = GetHitTest();

if (DockPane.DockPanel.AllowRedocking && index != -1)
{
   IDockContent content = Tabs[index].Content;
   try {  
       //注释为原句 
      //  content.DockHandler.IsFloat = !content.DockHandler.IsFloat;   
     //替换为           
         content.DockHandler.Close();
       }   
  catch  {   }
}
return;
}
 
2.解决背景图片的问题(DockPanel的OnPaint方法里) 
protected override void OnPaint(PaintEventArgs e)
{

   base.OnPaint(e);
   //注释以下这两句
  //Graphics g = e.Graphics;
  //  g.FillRectangle(SystemBrushes.AppWorkspace, ClientRectangle);
}
3.解决背景色无法改变问题(VS2005DockPaneStrip的OnPaint方法里)
protected override void OnPaint(PaintEventArgs e)
{
    if (Appearance == DockPane.AppearanceStyle.Document)
    {
    //注释以下这两句
    //if (BackColor != SystemColors.Control)
    //    BackColor = SystemColors.Control;
    }
    else
    {
    if (BackColor != SystemColors.ControlLight)
        BackColor = SystemColors.ControlLight;
    }
    base.OnPaint (e);
    CalculateTabs();
    if (Appearance == DockPane.AppearanceStyle.Document 
         && DockPane.ActiveContent != null)
    {
        if (EnsureDocumentTabVisible(DockPane.ActiveContent, false))
            CalculateTabs();
    }

    DrawTabStrip(e.Graphics);
}

4.改变标签颜色(VS2005DockPaneStrip)

private static Brush BrushDocumentActiveBackground { get { return new LinearGradientBrush(new Rectangle(0, 0, 1, 1),

Color.FromArgb(232, 242, 254),

Color.FromArgb(232, 242, 254), 1);/*SystemBrushes.ControlLightLight;*/ } } private static Brush BrushDocumentInactiveBackground { get { return new LinearGradientBrush(new Rectangle(0, 0, 1, 1),

Color.FromArgb(173, 193, 220),

Color.FromArgb(173, 193, 220), 1); } //SystemBrushes.ControlLight; } }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值