C#.NET学习笔记--MDI窗体相互调用一
来源:互联网 发布:怎么样开淘宝店 编辑:程序博客网 时间:2024/06/07 09:28
某些情况下,我们不只是单一的从主窗口调用子窗口,在现在我们所能使用到的,所能看到的软件里面,很多软件都引入了从子窗口调用主窗口的例子。这里就不一一列举了啊!
从主窗口调用子窗口相信很多人都会做了!基本代码如下:
Form2 form2=new Form2(); //其中Form2是子窗口
form2.Show();
假如我们现在要执行一个在调用子窗口的同时隐藏主窗口,当子窗口关闭时显示隐藏了的主窗口,当然这个在主窗口的代码很好实现,代码如下:
Form2 form2=new Form2(); //其中Form2是子窗口
form2.Show();
this.hide();
以上三句代码就实现了在调用子窗口的同时,隐藏掉了我们的主窗口了!
(因为我自己学习C#到现在不超过一星期,所以我刚开始想这个问题的时候,出现错误了)下面是我最初的错误想法:
我最开始是这么想的:使用new来显示我的主窗口,当然这个是错误的,因为new方法会在新的内存区建立一个和最初建立的主窗体一摸一样的窗体,而new的这个窗体已经不是我们需要的最初的窗体了!
其实很简单,当你使用new方法以后,你编译你的代码,你的程序是不会终止的。(别笑我哈,我也才接触C#不长!)
开始我百思不得其解,但是我想想类不是属于引用类型的吗,为什么我不建立和主窗体的一个引用呢?我就顺着这样的思路走下去。果然成功了。
首先,我在主窗体的的代码中添加这样一行代码:
public partial class Form1 : Form
{
static public Form1 F1 = null; //就是这行代码才重要
public Form1()
{
InitializeComponent();
F1 = this; //这里一定要对F1进行赋值
}
//其他代码
}
然后在子窗体中,同样要做改变:在子窗体中需要改变的代码如下:
(因为我用的是按钮按下触发事件:子窗体关闭,而原来的主窗体显示出来)
private void close_Click(object sender, EventArgs e)
{
Form1.F1 = Form1(); //这里F1就是一个引用类型 Form1是主窗体
F1.Show();
this.Close();
}
或许还有朋友会问,你怎么知道F1是一个引用?那只有建议兄弟在巩固一下自己的基础知识了。
到现在为止,是不是觉得其实MDI窗口相互调用也不是那么难了啊,其实通过这个例子,我自己收获倒是更加加深了对C#中类的概念以及引用类型的使用!
从主窗口调用子窗口相信很多人都会做了!基本代码如下:
Form2 form2=new Form2(); //其中Form2是子窗口
form2.Show();
假如我们现在要执行一个在调用子窗口的同时隐藏主窗口,当子窗口关闭时显示隐藏了的主窗口,当然这个在主窗口的代码很好实现,代码如下:
Form2 form2=new Form2(); //其中Form2是子窗口
form2.Show();
this.hide();
以上三句代码就实现了在调用子窗口的同时,隐藏掉了我们的主窗口了!
(因为我自己学习C#到现在不超过一星期,所以我刚开始想这个问题的时候,出现错误了)下面是我最初的错误想法:
我最开始是这么想的:使用new来显示我的主窗口,当然这个是错误的,因为new方法会在新的内存区建立一个和最初建立的主窗体一摸一样的窗体,而new的这个窗体已经不是我们需要的最初的窗体了!
其实很简单,当你使用new方法以后,你编译你的代码,你的程序是不会终止的。(别笑我哈,我也才接触C#不长!)
开始我百思不得其解,但是我想想类不是属于引用类型的吗,为什么我不建立和主窗体的一个引用呢?我就顺着这样的思路走下去。果然成功了。
首先,我在主窗体的的代码中添加这样一行代码:
public partial class Form1 : Form
{
static public Form1 F1 = null; //就是这行代码才重要
public Form1()
{
InitializeComponent();
F1 = this; //这里一定要对F1进行赋值
}
//其他代码
}
然后在子窗体中,同样要做改变:在子窗体中需要改变的代码如下:
(因为我用的是按钮按下触发事件:子窗体关闭,而原来的主窗体显示出来)
private void close_Click(object sender, EventArgs e)
{
Form1.F1 = Form1(); //这里F1就是一个引用类型 Form1是主窗体
F1.Show();
this.Close();
}
或许还有朋友会问,你怎么知道F1是一个引用?那只有建议兄弟在巩固一下自己的基础知识了。
到现在为止,是不是觉得其实MDI窗口相互调用也不是那么难了啊,其实通过这个例子,我自己收获倒是更加加深了对C#中类的概念以及引用类型的使用!
- C#.NET学习笔记--MDI窗体相互调用一
- C#.NET学习笔记--MDI窗体相互调用二
- [VB.NET]MDI窗体
- .Net创建MDI窗体
- .Net:MDI窗体菜单
- C#MDI窗体
- VS.NET 2005(C#)的C/S程序中MDI子窗体控制其父窗体
- 操作系统学习笔记(14)--C和汇编相互调用
- Objective-C与Swift相互调用 学习笔记
- vb.net详解MDI窗体操作方法
- 解决WinForm(C#)中MDI子窗体最大化的问题(VB.net中也适用)
- ASP.Net 3.5学习笔记(C#)一
- C Sharp与.net学习笔记(一)
- 在MDI窗体调用子窗体时怎样使不被MDI窗体上的图片挡住
- C#mdi子窗体最大化问题
- C#Mdi子窗体只弹出一次
- [C#]MDI窗体之rtf文本编辑器
- C#MDI窗体实现多窗口效果
- 利用DockPanel实现可停靠、可浮动、多文档窗体
- 迭代与创新 - 不要指望一次成功
- EDB 数据库实现多字段排序的问题。
- vs2005环境下编译CEGUI 0.6.0(转kun(小龙))
- 保障Windows Server 2003域控制器的安全性
- C#.NET学习笔记--MDI窗体相互调用一
- CEGUI学习笔记一--FirstWindow和FalagardDemo1分析 (转kun(小龙))
- 设定ofbiz的日志输出级别
- CEGUI学习笔记二--FalagardSkinning使用手册第2章 (转kun(小龙))
- 编译Linux系统内核的方法步骤
- C#.NET学习笔记--MDI窗体相互调用二
- CEGUI学习笔记三-- 如何显示中文和中文输入 (转kun(小龙))
- UNIX上C++程序设计守则3
- jar打包(须使用第三方JAR情况下, 附BAT文件,可自动打包)