天天看点

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

<b>1.窗体事件的发生顺序如下:</b>

  · 构造函数:在对象实例化过程中执行;

  · Load:在对象实例化之后,窗体可见之前发生,此时窗体已存在,但不可见;

  · Activated:在窗体处于可见状态并处于当前状态时发生;

  · Closing:在窗体关闭时发生;

  · Closed:在窗体关闭后发生;

  · Deactivate:在窗体关闭后发生,不能执行防止窗体被正常垃圾收集的操作;

2.Show()和ShowDialog()方法的区别:

  · 调用Show()方法后,后面的代码会立即执行;

  · 调用ShowDialog()方法后,直到ShowDialog()方法的窗体关闭后才继续执行之后的代码。

TestFormShow:

Form1.cs:主窗体

<b>01.using System; </b>

<b>02.using System.Collections.Generic; </b>

<b>03.using System.ComponentModel; </b>

<b>04.using System.Data; </b>

<b>05.using System.Drawing; </b>

<b>06.using System.Text; </b>

<b>07.using System.Windows.Forms; </b>

<b>08.  </b>

<b>09.namespace TestFormShow </b>

<b>10.{ </b>

<b>11.    public partial class Form1 : Form </b>

<b>12.    { </b>

<b>13.        public Form1() </b>

<b>14.        { </b>

<b>15.            InitializeComponent(); </b>

<b>16.        } </b>

<b>17.  </b>

<b>18.        private void button1_Click(object sender, EventArgs e) </b>

<b>19.        { </b>

<b>20.            //创建对话框 </b>

<b>21.            Phone frm = new Phone(); </b>

<b>22.            while (true) </b>

<b>23.            { </b>

<b>24.                //显示对话框 </b>

<b>25.                frm.ShowDialog(); </b>

<b>26.  </b>

<b>27.                //按下确认按钮 </b>

<b>28.                if (frm.DialogResult == DialogResult.OK) </b>

<b>29.                { </b>

<b>30.                    if (frm.PhoneNumber.Length == 7 || frm.PhoneNumber.Length == 8) </b>

<b>31.                    { </b>

<b>32.                        //格式正确,显示结果,并退出循环 </b>

<b>33.                        label1.Text = "Phone Number is : " + frm.PhoneNumber; </b>

<b>34.                        break; </b>

<b>35.                    } </b>

<b>36.                    else</b>

<b>37.                    { </b>

<b>38.                        //格式不正确,提示错误信息,继续循环 </b>

<b>39.                        MessageBox.Show("Phone number must be 7 or 8 digit."); </b>

<b>40.                    } </b>

<b>41.                } </b>

<b>42.                //按下取消按钮 </b>

<b>43.                else if (frm.DialogResult == DialogResult.Cancel) </b>

<b>44.                { </b>

<b>45.                    label1.Text = "Form was Canceled!"; </b>

<b>46.                    break; </b>

<b>47.                } </b>

<b>48.                  </b>

<b>49.            } </b>

<b>50.            //关闭对话框 </b>

<b>51.            frm.Close(); </b>

<b>52.        } </b>

<b>53.    } </b>

<b>54.}</b>

<b>Phone.cs:对话框</b>

<b>11.    public partial class Phone : Form </b>

<b>13.        public Phone() </b>

<b>16.  </b>

<b>17.            button1.DialogResult = DialogResult.OK; </b>

<b>18.            button2.DialogResult = DialogResult.Cancel; </b>

<b>19.  </b>

<b>20.        } </b>

<b>21.  </b>

<b>22.        public string PhoneNumber </b>

<b>23.        { </b>

<b>24.            get</b>

<b>25.            { </b>

<b>26.                return textBox1.Text; </b>

<b>27.            } </b>

<b>28.            set</b>

<b>29.            { </b>

<b>30.                textBox1.Text = value; </b>

<b>31.            } </b>

<b>32.        } </b>

<b>33.    } </b>

<b>34.}</b>

<b></b>

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

继续阅读