| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2899 人关注过本帖
标题:c#dockpanel控件产生的浮动子窗口怎么样就能有最大化功能,默认的只有关闭按 ...
只看楼主 加入收藏
lianjiecuowu
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:152
专家分:107
注 册:2011-5-20
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:2 
c#dockpanel控件产生的浮动子窗口怎么样就能有最大化功能,默认的只有关闭按钮,怎么设置都解决不了,求大神帮助解决,大分送上
如图所示,想要产生最大化按钮,需要添加什么事件或者是属性,详细点啊大家,有代码的贴代码,不胜感激
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 不胜感激 如图所示 
2014-01-01 12:50
shangsharon
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
威 望:7
帖 子:221
专家分:1261
注 册:2012-3-25
收藏
得分:10 
窗体的FormBorderStyle设置为sizable才会出现最大/小化按钮
2014-01-02 23:41
xydddaxia
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:33
帖 子:466
专家分:2307
注 册:2009-3-20
收藏
得分:10 
子窗口的控制按钮被dockpanel控制,MaximizeBox属性不管用,
修改dockpanel控件源代码,找到项目中的文件FloatWindow.cs
在240行左右有这样的代码,中间标红的部分是修改的部分,这样修改后,在浮动窗口的情况双击标题栏是最大化/最小化,而不是缩回去

else if (m.Msg == (int)Win32.Msgs.WM_NCLBUTTONDBLCLK) //双击消息事件
{
    uint result = NativeMethods.SendMessage(this.Handle, (int)Win32.Msgs.WM_NCHITTEST, 0, (uint)m.LParam);
    if (result != 2)    // HITTEST_CAPTION
    {
        base.WndProc(ref m);
        return;
    }

    DockPanel.SuspendLayout(true);

    // Restore to panel
    foreach (DockPane pane in NestedPanes)
    {
        if (pane.DockState != DockState.Float)
        {
            continue;
        }
        //pane.RestoreToPanel();
        Form form = (Form)System.Windows.Forms.Form.FromHandle(this.Handle);
        if (form.WindowState != FormWindowState.Maximized)
        {
            form.WindowState = FormWindowState.Maximized;
        }
        else
        {
            form.WindowState = FormWindowState.Normal;
        }

    }
    DockPanel.ResumeLayout(true, true);
    return;
}

[ 本帖最后由 xydddaxia 于 2014-1-8 17:20 编辑 ]

站在春哥的肩膀上
2014-01-08 17:11
快速回复:c#dockpanel控件产生的浮动子窗口怎么样就能有最大化功能,默认的只有 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015392 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved