Winform知识
文档界面
分类:
1、单文档界面应用程序(SDI)
特点:
1、应用程序中SDI的所有窗体都彼此独立
2、多文档界面应用程序(MDI)
特点:
1、每个应用程序中只能有一个MDI父窗体,在父窗体中可以打开多个MDI子窗体
2、任何MDI子窗体都只能在父窗体内部区域活动。
3、当关闭任何子窗体时,对其他打开的子窗体以及父窗体均没有任何影响。
4、当关闭父窗体时,将关闭所有打开的子窗体。
实现步骤:
1、设置MDI父窗体
设置窗体IsMdiContainer属性为true:则当前窗体为MDI父窗体
2、设置MDI子窗体代码如下
窗体名 对象名=new 窗体名();
对象名.MdiParent =this;
对象名.Show();
注意:MDI子窗体在弹窗出现时一定不能设置为模式弹窗
即:只能为Show弹窗
===================================================================================================================
一、MDI窗体设置和其子窗体设置
1、设置窗体的IsMdiContainer属性为true
2、设置MDI窗体的子窗体
子窗体1 子窗体=new 子窗体1();
子窗体.MdiParent=this;
子窗体.Show();
二、MDI窗体的子窗体排列
1、水平对齐:this.LayoutMdi(MdiLayout.TileHorizontal);
2、垂直平铺:this.LayoutMdi(MdiLayout.TileVertical);
3、层叠:this.LayoutMdi(MdiLayout.Cascade);
4、排列所以图表:this.LayoutMdi(MdiLayout.ArrangeIcons);
三、获取子窗体的数量
1、MessageBox.Show(this.MdiChildren.Length+"");
四、MDI窗体中窗口只允许打开一个
/// <summary>
/// 判断MDI子窗体是否存在 存在就显示
/// </summary>
/// <param name="formName">窗体名</param>
/// <returns></returns>
public bool IsSunFrmOpen(string formName)
{
// 子窗体是否已经打开了?(用循环来判断)
foreach (Form childrenForm in this.MdiChildren)
{
//检测是不是当前子窗体名称
if (childrenForm.Name == formName)
{
//是的话就是把他显示
childrenForm.Visible = true;
//恢复窗体的默认状态
childrenForm.WindowState = FormWindowState.Normal;
return true;
}
}
return false;
}
调用如下:
private void **_Click(object sender, EventArgs e)
{
//判断名字为Form1的子窗体是否存在 存在就显示 否则就创建
if (!IsSunFrmOpen("Form1"))
{
//不存在就创建窗体对象
Form1 f1 = new Form1();
f1.MdiParent = this;
f1.Show();
}
}
Winform知识的更多相关文章
- Winform知识汇总之多次绑定DataGridView的DataSource会报错 NullReferenceExcepti
最近做了一个winform的项目,数据绑定在datagridview中,datagridview中的数据需要删除,分页,更新等之类的操作,所以就涉及到了datagridview的重新绑定问题,而且这些 ...
- C# 基础知识 (三).主子对话框数值传递
在C# winform编程中,我们经常会遇到不同窗口间需要传递数值的问题.比如数据库的应用,主窗口填写内容num1,点击按钮,在弹出的子窗口显示对应num1值;或者在子窗口填写新注册用户名信息,在主窗 ...
- 自定义可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)
前言: 最近飞机失联的太多,明天要飞北京处理服务器双机热备的问题,航空保险已买,单号是:TF10122913. 至于我的银行卡密码,在我枕头下面的字条里,要是我之后没再更新文章,请通知我家人,哈哈哈哈 ...
- 自定义可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)vs.net开发工具
背景: 话说:使用CYQ.Data时,会经常断点MDataTable的对象,为了查看表格的数据内容,在监视里会常ToDataTable(),然后借可DataTable的可视化方式查看表格. 近日:心中 ...
- 我的.NET之路
有时感觉知识比较零散,做个总结形成自己的知识体系,方便查阅[持续更新...] C#语法特性 .Net FrameWork发展史 C# 语言版本发展史 1.NET体系结构 [C#与.NET的关系.公共语 ...
- 3_03_MSSQL课程_Ado.Net_数据导入
数据库数据导出和导入 思路: --思路: 1.找到文件 2.读取文件 3.第一行 忽略 4.insert using System; using System.Collections.Generic; ...
- Winform开发几个常用的开发经验及知识积累(一)
本人做Winform开发多年,孜孜不倦,略有小成,其中收集或者自己开发一些常用的东西,基本上在各个项目都能用到的一些开发经验及知识积累,现逐步介绍一些,以飨读者,共同进步. 1.窗口[×]关闭按钮变为 ...
- WinForm开发,窗体显示和窗体传值相关知识总结
主窗体中代码: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void b ...
- 一句话知识:如何解决winform自动缩放产生的布局问题.
转自http://www.cnblogs.com/KenBlove/articles/1281823.html有时候你会发现本来好好的WinForm程序在别的机器上显示的尺寸就不对了.这些问题主要发生 ...
随机推荐
- Oracle 10046跟踪事件使用方法
1.开启10046跟踪事件 alter session set events '10046 trace name context forever, level 12'; 如果想更容易标识trace文件 ...
- 学习OpenCV——hand tracking手势跟踪
这几日,岛上风云突变,我这个倒霉孩子终究木有躲过感冒的魔掌,中枪鸟~~~ 这几天只写了个简单的手势跟踪的代码. 原理是:背景差分+肤色检测. 背景差分:取前30帧图像取平均值,计算前30帧之差的和,再 ...
- Eclipse插件CheckStyle的安装和使用
转载自:http://www.cnblogs.com/lanxuezaipiao/p/3202169.html CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员 ...
- 遍历Map集合的方法
创建一个MAP的栗子: Map<String, Integer> tempMap = new HashMap<String, Integer>(); tempMap.put(& ...
- Topcoder SRM 597
妈蛋第一场tc就掉分,提交了第一个题的时候就注定悲剧要发生了,妈蛋没考虑0就直接%了,真的是人傻见识又少,第二题最后有了一点思路,没时间写了,可能也不是很准确,第三题想了小会儿效果为0! 然后第一题傻 ...
- XML节点名称中有小数点处理(deal with dot)导致使用xpath时报错解决方法
<?xml version="1.0"?> <ModifyFiles> <_Layout.cshtml>123456</_Layout.c ...
- BZOJ 4052: [Cerc2013]Magical GCD
以一个数字开头的子序列的gcd种类不会超过logn种,因此去找相同gcd最长的位置,更新一下答案,复杂度O(nlogn^2) #include<cstdio> #include<al ...
- Openssl生成根证书、服务器证书并签核证书
1.修改Openssl配置文件CA目录: cat /etc/pki/tls/openssl.cnf dir = /etc/pki/CA 2.生成根证书及私钥: #http://www.haiyun.m ...
- explode and implode
[PHP源码阅读]explode和implode函数 explode和implode函数主要用作字符串和数组间转换的操作,比如获取一段参数后根据某个字符分割字符串,或者将一个数组的结果使用一个字符 ...
- ppaer 67 : matlab 函数errorbar
MATLAB ERRORBAR 这个函数的意思是:ERRORBAR(X,Y,L,U),X是自变量,Y是因变量,L是Y的变动下限,U是Y的变动上限 errorbar(X,Y,E) X是自变量,Y是因变 ...