编程论坛
注册
登录
编程论坛
→
C# 论坛
c#dockpanel控件产生的浮动子窗口怎么样就能有最大化功能,默认的只有关闭按钮,怎么设置都解决不了,求大神帮助解决,大分送上
lianjiecuowu
发布于 2014-01-01 12:50, 2899 次点击
如图所示,想要产生最大化按钮,需要添加什么事件或者是属性,详细点啊大家,有代码的贴代码,不胜感激
只有本站会员才能查看附件,请
登录
只有本站会员才能查看附件,请
登录
2 回复
#2
shangsharon
2014-01-02 23:41
窗体的FormBorderStyle设置为sizable才会出现最大/小化按钮
#3
xydddaxia
2014-01-08 17:11
子窗口的控制按钮被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 编辑
]
1