winform窗体 控件【MDI 窗体容器】
MDI :窗体容器
-- 在窗体中放置窗体
属性
IsMdiContainer : 是否是窗体 -- 只有 Form 有此属性
Form2 f2 = new Form2();
f2.MdiParent = this; -- 获取或设置此窗体的父窗体
f2.WindowState = FormWindowState.Maximized; --在后台设置窗体最大化
f2.Parent = panel1; -- 获取或设置此控件的父容器(放置了 panel 来布局要将窗体放到 panel 上面)
f2.Show();
案例
List<Form> FormList = new List<Form>();
private void 销售模块ToolStripMenuItem_Click(object sender, EventArgs e)
{
bool has = false;
Form2 f2 = new Form2();
foreach (Form f in FormList)
{
if (f is Form2)
{
has = true;
f2 = f as Form2;
}
}
if (has == false)
{
f2.MdiParent = this;
f2.WindowState = FormWindowState.Maximized;
f2.Parent = panel1;
f2.Show();
FormList.Add(f2);
}
else
{
foreach (Form f in FormList)
{
f.Hide();
}
f2.Show();
}
}
private void 仓库模块ToolStripMenuItem_Click(object sender, EventArgs e)
{
bool has = false;
Form3 f3 = new Form3();
foreach (Form f in FormList)
{
if (f is Form3)
{
has = true;
f3 = f as Form3;
}
}
if (has == false)
{
f3.MdiParent = this;
f3.WindowState = FormWindowState.Maximized;
f3.Parent = panel1;
f3.Show();
FormList.Add(f3);
}
else
{
foreach (Form f in FormList)
{
f.Hide();
}
f3.Show();
}
}
private void 财务模块ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form4 f4 = new Form4();
f4.MdiParent = this;
f4.WindowState = FormWindowState.Maximized;
f4.Parent = panel1;
f4.Show();
}
销售模块 与 仓库模块 使用 MID 容器并且打开单一窗体
财务模:使用 MID 容器
winform窗体 控件【MDI 窗体容器】的更多相关文章
- winform groupbox控件放到窗体中间位置
1. 在Form中放一个控件,让其在启动时始终居中 int gLeft = this.Width / 2 - groupControl1.Width / 2; int gTop = this.Heig ...
- Winform 窗体控件随窗体自动(等比例)调整大小
新建窗体程序了,添加窗体事件Load(加载窗体时).Resize(调整控件大小时).自定义方法setTag(获取控件的width.height.left.top.字体大小等信息的值).setContr ...
- C# 解决winform 窗体控件在窗体变化时闪烁的问题
在窗体form代码中加入如下代码即可: protected override CreateParams CreateParams { get { CreateParams cp = base.Crea ...
- C# winform 跨线程更改窗体控件的属性
当winform程序中新开一个线程,是无法改变主线程中窗体控件的属性的,否则运行时会报错. 若想在其他线程中控制主线程中的窗体控件,则必须利用BeginInvoke方法. 例如:添加一个名为textb ...
- winform窗体控件(全)
回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变(转)
在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大小并且能重新定位?此时就要借助控件的.Anchor属性.Anchor属性定义控件的定位点位置.当控件锚定到某个 ...
- 【2017-04-25】winform公共控件、菜单和工具栏、Tab和无边框窗体制作
一.公共控件 1. Button 按钮 + 布局 - AutoSize 按钮尺寸自动适应里面内容的长度 - Location 位置 - Margin 控件与控件外边距 - S ...
- C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法
C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 1.新建组件这里可以自定义一个Panel控件起名为PanelEx 2.增加一个BoderColor属性和BoderSize属性 pr ...
- C# WinForm窗体控件GroupBox修改边框颜色控件
C# WinForm窗体控件GroupBox修改边框颜色控件 1.新建组件这里可以自定义一个GroupBox控件起名为GroupBoxEx 2.增加一个BoderColor属性 private Col ...
随机推荐
- C# 两个datatable中的数据快速比较返回交集或差集
转自: https://www.cnblogs.com/lacey/p/5893380.html 如果两个datatable的字段完全一致的话,可以直接使用Except,Intersect //Exc ...
- ASP.NET Web API + Elasticsearch 6.x 快速做个全文搜索
最近想做个全文搜索,设想用 ASP.NET Web API + Elasticsearch 6.x 来实现. 网上搜了下 Elasticsearch 的资料,大部分是讲 linux 平台下如何用 ja ...
- MVC+Nhibernate+spring.net(二)
在上一篇文章中我们已经把数据查了出来,现在我们来完善一下:前台使用easyui 首先我们将NHelper类完善一下 public class EmpDal { public IList<Emp& ...
- 剑指offer编程题Java实现——面试题7相关题用两个队列实现一个栈
剑指offer面试题7相关题目:用两个队列实现一个栈 解题思路:根据栈的先入后出和队列的先入先出的特点1.在push的时候,把元素向非空的队列内添加2.在pop的时候,把不为空的队列中的size()- ...
- [leetcode.com]算法题目 - Same Tree
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...
- 在Node中使用ES6语法
Node本身已经支持部分ES6语法,但是import export,以及async await(Node 8 已经支持)等一些语法,我们还是无法使用.为了能使用这些新特性,我们就需要使用babel把E ...
- 17_python_成员
一.类成员 1.字段 class Province: country = '中国' # 实例 (静态) 字段:类变量. 不属于对象, 对象可以访问 def __init__(self, name): ...
- 拿 .properties 这种里面的数据 在不同的地方
1 在xml中 2 在.java中 @Value("#{configProperties['key']}") configProperties不是固定(根据配置时的id) ...
- Codeforces 1058 D. Vasya and Triangle(分解因子)
题目:http://codeforces.com/contest/1058/problem/D 题意:有一个大小为N*M的矩阵内,构造一个三角形,使面积为(n*m)/k.若存在输出三个顶点(整数). ...
- mongodb postgresql mysql jsonb对比
mongodb pg mysql jsonb对比 http://erthalion.info/2017/12/21/advanced-json-benchmarks/ 使用禁用jsonb列的压缩 AL ...