用Form1表示原窗體,使用Form2表示新顯示的窗體,它們之間存在“Form1->Form2”的導航關系。
顯示Form2有兩種方式-調用Form2的Show方法或調用ShowDialog方法。Show方法將Form2作為普通的窗體顯示出來,而ShowDialog方法則將其作為模式對話框進行顯示。這兩種方法的區別在于,對Show方法的調用立即返回,Form1繼續執行Show方法調用后面的代碼,而對ShowDialog的調用將被阻塞,直到Form2被關閉為止。
另外,ShowDialog方法顯示對話框后還能接收到一個返回值,表示用戶在對話框中進行操作的結果。只需在Form2中的恰當位置將其自身的DialogResult屬性設置為DialogResoult枚舉的某個值之一,就可以關閉Form2并向Form1返回這個DialogResult值。
常用的窗體間屬性、構造器之外的一種傳遞值的方法:
可以在第一個窗體中定義一個static ? public ? 變量,用它來傳遞數據 ?
? 如: ?
? Form1.cs文件中: ?
? ?
? static ? public ? string ? str; ?
? private ? Form2 ? frm ? = ? new ? Form2(); ?
? private ? void ? button1_Click(object ? sender, ? System.EventArgs ? e) ?
? { ?
? str ? = ? textBox1.Text; ?
? frm.Show(); ?
? this.Hide(); ?
? } ?
? ?
? Form2.cs文件中: ?
? ?
? private ? void ? Form2_Load(object ? sender, ? System.EventArgs ? e) ?
? { ?
? textBox1.Text ? = ? Form1.str; ?
? } ?
? ?
? 如果str被聲明為 ? public ? 而不是 ? static ? public ? 則必須聲明一個Form1的實例才能使用.