关于winform中子窗体最大化的问题

在构建winform程序时,普遍的做法是将主窗体设置成 MDI Container,使它可以放置工作窗体(Form 而非 UserControl)。工作窗体作为子窗体填充工作区,一般设置 FormBorderStyle = None,不显示标题栏和边框,然后最大化。最大化设置上有个要点,如果设置WinformState = Maxmized,则会出现很多不希望的结果,比如右上角会出现关闭子窗体按钮,标题内容会合并,主菜单合并等等,你不得不佩服MDI这种烦恼的特性。

如果不设置 WindowState,而设置 Dock = Fill 则它的行为就像用户控件一样,不会出现上面的任何不希望的效果。

此经验值1个小时。

时间: 2024-10-09 18:34:01

关于winform中子窗体最大化的问题的相关文章

winForm 中子窗体关闭但不释放对象,方便下次继续打开

方法一: 修改子窗体中自动生成的Dispose方法(在Form.Designer.cs文件中) /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> prote

Winform子窗体刷新父窗体

调用窗体(父):Form1,被调用窗体(子):Form2方法1:   所有权法//Form1://需要有一个公共的刷新方法public   void   Refresh_Method(){//...}//在调用Form2时,要把Form2的所有者设为Form1Form2   f2   =   new   Form2()   ;f2.Owner   =   this;f2.ShowDialog()   ;//Form2://在需要对其调用者(父)刷新时Form1   f1   ;f1   =  

winForm窗体最大化的设置

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

WinForm MDi子窗体最大化导致子窗体标题栏和主窗体菜单栏合并问题的解决方法

在主窗体菜单栏的ItemAdded事件中编写如下代码: *msMain是我的主窗体菜单栏的Name属性值 //子窗体最大化不显示图标 private void msMain_ItemAdded(object sender, ToolStripItemEventArgs e) { if (e.Item.Text.Length == 0) { e.Item.Visible = false; } else { e.Item.Visible = true; } } 说明: 打开的子窗体最大化的时候,菜单

解决WinForm(C#)中MDI子窗体最大化的问题

“用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化: 1.把父窗体的IsMdiContainer设置为True:2.把子窗体的WindowState设置为Normal:3.在父窗体中用下面的方法打开子窗体:private void menuItemsMdiForm_Click(object sender, EventArgs e){     MyChild

解决WinForm(C#)中MDI子窗体最大化跑偏的问题

“用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化: 1.把父窗体的IsMdiContainer设置为True:2.把子窗体的WindowState设置为Normal:3.在父窗体中用下面的方法打开子窗体:private void menuItemsMdiForm_Click(object sender, EventArgs e){     MyChild

winform 常用窗体属性

WinForm常用窗体属性: Form常用属性 AutoSizeMode属性 :值是: GrowAndShrink不能调整窗体大小 :值是:GrowOnly 可以改变大小 (1)Name属性:用来获取或设置窗体的名称. (2)WindowState属性:用来获取或设置窗体的窗口状态. (3)StartPosition属性:用来获取或设置运行时窗体的起始位置. (4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字. (5)Width属性:用来获取或设置窗体的宽度. (

C# WinForm 父窗体 子窗体 传值

C# WinForm 父窗体 子窗体 传值 本次示例效果如下:Form1为父窗体(包含textBox1.button1)Form2为子窗体(包含textBox2.button2) 父窗体给子窗体传值==================1.点击Form1的button1 打开Form2  父窗体给子窗体传值 可以调用重载子窗体的构造函数 直接传入相关数值 public partial class Form1 : Form    {        public Form1()        {   

Winform跨窗体操作控件(使用委托)

Winform跨窗体操作控件是winform开发中很常见的形式,最常见且简单有效的方式便是使用委托的方式来进行操作,下面我将通过一个小实例来说明如何使用委托跨窗体实现控件操作. 实例介绍:两个窗体,Form1按钮打开Form2,然后在Form2的TextBox输入值在Form1的TextBox中显示出来. 一.项目结构 Form1窗体设计: Form2窗体设计: 二.代码实现 在Form2的代码中声明一个委托(写在Form2类外)-> public delegate void ChangeFor