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程序在别的机器上显示的尺寸就不对了.这些问题主要发生 ...
随机推荐
- js离开或刷新页面检测(且兼容FF,IE,Chrome)
<!DOCTYPE html> <html> <head> <script> function closeIt() { return confirm(& ...
- sql语句感想
select出来内容可以当成表拿来用,,比如取别名什么的. union是纵向的,追加记录(行) join on是横向的,追加列
- linux:档案与档案系统的压缩、打包与备份
压缩比:压缩后与压缩的档案锁占用的磁碟空间大小,就称之为压缩比 压缩技术: a.将没有使用到的空间丢出去,以让档案资料占用的空间变小 b.将重复的资料统计记录(比如100个1,不是真正的用100个元位 ...
- logistic regression的一些问题,不平衡数据,时间序列,求解惑
Logistic Regression 1.在有时间序列的特征数据中,怎么运用LR? 不光是LR,其他的模型也是. 有很多基本的模型变形之后,变成带时序的模型.但,个人觉得,这类模型大多不靠谱. 我觉 ...
- 实现 DIV 固定定位在网页主体部分最右侧
position:fixed 相对于窗口的固定定位,这个窗口可理解为可视窗口,除了浏览器自己的东西,剩下的就是这个可视窗口.而大部分的网页都是窄屏设计,比如说网页主体部分固定宽 1200px,或者自适 ...
- R12 供应商SQL
-- 供应商主表数据: SELECT ass.vendor_id vendor_id, ass.party_id party_id, ass.segment1 vendor_code, ass.ven ...
- 夺命雷公狗---Thinkphp----14之前台的首页完善
我们先来完成我们的首页部分,我们首页要先来完成到焊条部分和右侧的导航部分: 我们先来写控制器: 然后在右侧遍历头部遍历出我们所需要的数据: 因为我们的右侧是引入进来的,所以我们需要到右侧视图下进行遍历 ...
- 夺命雷公狗---DEDECMS----4快速入门之栏目页报错之快速解决
我们dedecms是分3级或者3层的,如下图所示: 点击“玄幻小说”后发现出了错,如下图所示: 我们的dedecms是分3层的,他们分别是: 网站首页 网站的栏目页面(多级)--->栏目页面是需 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON FillUpShape1
zw版[转发·台湾nvp系列Delphi例程]HALCON FillUpShape1 procedure TForm1.Button1Click(Sender: TObject);var img : ...
- OpenStack 虚拟机监控方案确定
Contents [hide] 1 监控方案调研过程 1.1 1. 虚拟机里内置监控模块 1.2 2. 通过libvirt获取虚拟机数据监控. 2 a.测试openstack的自待组件ceilomet ...