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 ...
随机推荐
- 一些LinuxC的小知识点(二)
一.read系统调用 系统调用read的作用是:从与文件描述符filedes相关联的文件里读入nbytes个字节的数据,并把它们放到数据区buf中.它返回实际读入的字节数.这可能会小于请求 ...
- GitLab问题小结
1.内存消耗太大 (1)公司使用gitlab后,发现服务器内存居高不下,使用top命令查看内存消耗,发现服务器上git将近消耗一半内存资源.而且很奇怪的是竟然开启了32个进程.后经查资料,原来这跟gi ...
- K8s之spinnaker
一.spinnaker概述 1.spinnaker是netflix开源的一款云发布CI/CD,其前身是Asgard,spinnaker支持各种部署目标,包括OpenStack.DC/OS.Kubern ...
- C语言判断进程是否存在
#include <windows.h> #include <tlhelp32.h> //进程快照函数头文件 #include <stdio.h> bool get ...
- Maximum repetition substring(POJ - 3693)(sa(后缀数组)+st表)
The repetition number of a string is defined as the maximum number \(R\) such that the string can be ...
- 11_python_闭包迭代器
一.函数名(第一类对象) 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量. def func(): print("呵呵") print(func) 结果: & ...
- ubuntu下nodejs源码安装
1.从github选择下载自己要安装的nodejs版本,https://github.com/nodejs/node/releases,我下载的版本是node-9.11.2.tar.gz 2.解压no ...
- mysql创建账号及管理权限
mysql创建账号及管理权限 0.mysql版本8.0.15,服务器版本:RHEL 6.5 1.创建用户名密码 mysql> use mysql; mysql> create user ' ...
- 面试题-lazyMan实现
原文:如何实现一个LazyMan 面试题目 实现一个LazyMan,可以按照以下方式调用: LazyMan('Hank'),输出: Hi, This is Hank! LazyMan('Hank'). ...
- Swift 里 Set(四)Testing for Membership
即contains操作 /// - Parameter member: An element to look for in the set. /// - Returns: `true` if `mem ...