C#中窗体的实例化和释放

简介:
1.窗体事件的发生顺序如下:
  · 构造函数:在对象实例化过程中执行;
  · Load:在对象实例化之后,窗体可见之前发生,此时窗体已存在,但不可见;
  · Activated:在窗体处于可见状态并处于当前状态时发生;
  · Closing:在窗体关闭时发生;
  · Closed:在窗体关闭后发生;
  · Deactivate:在窗体关闭后发生,不能执行防止窗体被正常垃圾收集的操作;
2.Show()和ShowDialog()方法的区别:
  · 调用Show()方法后,后面的代码会立即执行;
  · 调用ShowDialog()方法后,直到ShowDialog()方法的窗体关闭后才继续执行之后的代码。

TestFormShow:

Form1.cs:主窗体

 
01.using System; 
02.using System.Collections.Generic; 
03.using System.ComponentModel; 
04.using System.Data; 
05.using System.Drawing; 
06.using System.Text; 
07.using System.Windows.Forms; 
08.  
09.namespace TestFormShow 
10.{ 
11.    public partial class Form1 : Form 
12.    { 
13.        public Form1() 
14.        { 
15.            InitializeComponent(); 
16.        } 
17.  
18.        private void button1_Click(object sender, EventArgs e) 
19.        { 
20.            //创建对话框 
21.            Phone frm = new Phone(); 
22.            while (true) 
23.            { 
24.                //显示对话框 
25.                frm.ShowDialog(); 
26.  
27.                //按下确认按钮 
28.                if (frm.DialogResult == DialogResult.OK) 
29.                { 
30.                    if (frm.PhoneNumber.Length == 7 || frm.PhoneNumber.Length == 8) 
31.                    { 
32.                        //格式正确,显示结果,并退出循环 
33.                        label1.Text = "Phone Number is : " + frm.PhoneNumber; 
34.                        break; 
35.                    } 
36.                    else
37.                    { 
38.                        //格式不正确,提示错误信息,继续循环 
39.                        MessageBox.Show("Phone number must be 7 or 8 digit."); 
40.                    } 
41.                } 
42.                //按下取消按钮 
43.                else if (frm.DialogResult == DialogResult.Cancel) 
44.                { 
45.                    label1.Text = "Form was Canceled!"; 
46.                    break; 
47.                } 
48.                  
49.            } 
50.            //关闭对话框 
51.            frm.Close(); 
52.        } 
53.    } 
54.}


Phone.cs:对话框

view source  
print ? 01.using System; 
02.using System.Collections.Generic; 
03.using System.ComponentModel; 
04.using System.Data; 
05.using System.Drawing; 
06.using System.Text; 
07.using System.Windows.Forms; 
08.  
09.namespace TestFormShow 
10.{ 
11.    public partial class Phone : Form 
12.    { 
13.        public Phone() 
14.        { 
15.            InitializeComponent(); 
16.  
17.            button1.DialogResult = DialogResult.OK; 
18.            button2.DialogResult = DialogResult.Cancel; 
19.  
20.        } 
21.  
22.        public string PhoneNumber 
23.        { 
24.            get
25.            { 
26.                return textBox1.Text; 
27.            } 
28.            set
29.            { 
30.                textBox1.Text = value; 
31.            } 
32.        } 
33.    } 

34.}



     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360723,如需转载请自行联系原作者





相关文章
|
7月前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
|
关系型数据库 MySQL C#
C# winform 一个窗体需要调用自定义用户控件的控件名称
给用户控件ucQRCode增加属性: //二维码图片 private PictureBox _pictureBoxFSHLQrCode; public PictureBox PictureBoxFSHLQrCode {   get { return _pictureBoxFSHLQrCode; }   set { this.pictureBoxFSHLQrCode = value; } } 在Form1窗体直接调用即可: ucQRCode uQRCode=new ucQRCode(); ucQRCode.PictureBoxFSHLQrCode.属性= 要复制或传给用户控件上的控件的值
71 0
|
2月前
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
102 0
|
5月前
|
开发框架 数据可视化 C#
|
7月前
|
C#
C#如何实现窗体最小化到托盘
C#如何实现窗体最小化到托盘
82 0
|
7月前
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
144 0
|
7月前
|
C# Windows
C#安装“Windows 窗体应用(.NET Framework)”
C#安装“Windows 窗体应用(.NET Framework)”
193 0
|
C# 数据安全/隐私保护
C# 窗体之间参数互相传递的两种方法与使用
C# 窗体之间参数互相传递的两种方法与使用
|
C# Kotlin
C#is、as关键字及获取当前活动窗体的实例
这篇日志记录一下C#中is关键字及as关键字的用法。 Is :判断检查对象是否与给定类型兼容 As :将对象转换为指定类型(强转),就跟(int )这样的用法是一样的。 获取当前窗体的活动子窗体。
58 0
|
C# 数据安全/隐私保护
ApeForms | C# WinForm窗体控件平滑减速运动
在桌面软件开发中,有时会需要控制窗体或控件移动以实现某些界面效果,比如幻灯片换页、侧面的展开栏等。 通常情况下我们会使用Timer以每隔一段时间修改一下坐标位置的方式来实现目标对象的位移效果,但通过这个方式实现的动效存在几个问题: 匀速运动效果生硬; 运动过程中不便灵活改变运动状态(如侧栏展开一半时令其收起); 动效多时需要创建多个Timer对象,不易管理且占用资源; ApeForms中为控件和窗体提供了平滑运动的扩展方法,很好的解决了这些问题。不仅是坐标的平滑运动,还有控件\窗体尺寸的平滑变化、透明度的平滑变化。允许在变化的中途随时更改目标坐标\尺寸\透明度,且使用共享的Timer
11394 1
ApeForms | C# WinForm窗体控件平滑减速运动