天天看點

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>

繼續閱讀