代碼功能
一、隱藏當前窗口
this.Hide();//隱藏當前窗口
二、調用計算機自帶
System.Diagnostics.Process.Start("calc.exe");//調用自帶計算器
System.Diagnostics.Process.Start("notepad.exe");//調用自帶記事本
三、窗口名稱
this.Text ="點/加菜";
四、顯示調用窗口
showdialog()與show的區別
顯示 窗口:
frmMain main = new frmMain(); 1)main.Show(); 2) main.showdialog();
showdialog就是顯示有模式的窗體,showdialog后面的語句不會執行,直到顯示的窗體被關閉。show就是無模式的窗體,顯示窗體后不論窗體是否關閉都執行show后面的語句。
面對多窗口的調用的時候,我們往往不喜歡窗口之間的隨意切換,那樣我們還有花費時間尋找我們要用的窗口,而且,一但出現問題,窗口的順序也有可能被再次打亂,很是不順手,那么我們怎么辦呢? 我們可以將show方法轉化為showdialog方法,顧名思義,showdialog是一個進行路經綁定的show方法,他是不可以自由切換的,換言之,就是,當你沒有關閉你當前頁的前提下,你是無法關閉該頁面后面的任一頁面的,它是當前唯一(路經打開)為true的。 而show方法由於未進行綁定,它所顯示的各個窗口、對話框是可以相互切換,而不需要關閉當前窗口、對話框。但是他由於未進行綁定,所以每個由show方法打開的窗口的順序是非固定的,如果遇到什么問題,由show方法打開的窗口的順序可能會有很大的改變!
show()僅僅是顯示出來窗口界面而已,也就是和你執行的結果在同一窗口顯示,所顯示的窗口可以在后台運行,而showDialog()是一個對話框窗口界面,執行結果以新窗口界面出現,不允許進行后台運行,就是你想編輯什么的時候,非得先關閉showDialog()窗口界面才可以進行其他操作.
show()是非模式窗體. showDialog()是模式窗體. 區別在於,以showDialog()打開的窗體,要等窗體關閉后才能操作其他窗體.而show()則不受此限制.
這是最經常的區別了, 還有一個我個人使用的心得,你可以了解
比如你先打開子窗體,想隱藏主窗體。 如果這個時候用Show的話,則會發生的事情是,打開子窗體的同時主窗體又顯示出來,而使用ShowDialog()的時候主要當子窗體關閉的時候主窗體才會顯示。
舉個簡單的例子,代碼如下:
Form2 f2 = new Form2();
this.Visible = false;
f2.ShowDialog();
this.Visible= true;
這就是模態對話框的與Show的區別。
設置窗口標簽
FrmLogin.Tag = 1;//將登錄窗體的Tag屬性設為1,表示調用的是登錄窗體
四、c#的owner的使用方法
獲取或設置擁有此窗體的窗體。
Form,表示作為此窗體的所有者的窗體。
若要使某窗體歸另一個窗體所有,請為其 Owner 屬性分配一個對將成為所有者的窗體的引用。
當一個窗體歸另一窗體所有時,它便隨着所有者窗體最小化和關閉。例如,如果 Form2 歸窗體 Form1 所有,則關閉或最小化 Form1 時,Form2 也會關閉或最小化。並且附屬窗體從不顯示在其所有者窗體后面。可以將附屬窗體用於查找和替換窗口之類的窗口,當選定所有者窗體時,這些窗口不應消失。
在form1中使用form2Form2 childForm = new Form2 ();//this指向主窗口childForm .Owner = this; --當前myForm1 .Show();
form2中
Form1 myForm1 ;myForm1 = (Form1)this.Owner;
鎖定系統 frmLock locksystem = new frmLock(); locksystem.Owner = this;//frmLock窗體歸main主窗體 locksystem.ShowDialog();
五、C#中,Application.Exit和Close有什么不同
Application.Exit會關閉所有窗口並退出程序,Close只是關閉當前窗口,如果當前窗口是Application.Run()方法里面傳入的窗口,那么程序也會退出,如果不是Application.Run()方法里面傳入的窗口,那么程序是不會退出的。
//退出系統 private void 退出系統ToolStripMenuItem1_Click(object sender, EventArgs e) { if (MessageBox.Show("確定退出本系統嗎?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK) { Application.Exit(); } }
六、窗體事件
private void From_Load(object sender, EventArgs e); //窗體加載時
private void From_Activated(object sender, EventArgs e);//窗體激活時
七、屬性
1)設置窗體邊框可以通過設置窗體的FormBorderStyle屬性設置。屬性值可以通過枚舉類型FormBorderStyle獲取,它的取值和意義如下表所示。
| 屬性 | 值 | 意義 |
| FormBorderStyle.None | 0 | 無邊框 |
| FormBorderStyle.FixedSingle | 1 | 固定的單行邊框 |
| FormBorderStyle.Fixed3D | 2 | 固定的三維樣式邊框 |
| FormBorderStyle.FixedDialog | 3 | 固定的對話框樣式的粗邊框 |
| FormBorderStyle.Sizable | 4 | 可調整大小的邊框 |
| FormBorderStyle.FixedToolWindow | 5 | 不可調整大小的工具窗口邊框 |
| FormBorderStyle.SizableToolWindow | 6 | 可調整大小的工具窗口邊框 |
自帶方法
1
// // 摘要: // 獲取或設置包含有關控件的數據的對象。 // // 返回結果: // 一個 System.Object,它包含有關控件的數據。默認為 null。 [Bindable(true)] [DefaultValue(null)] [Localizable(false)] [SRCategoryAttribute("CatData")] [SRDescriptionAttribute("ControlTagDescr")] [TypeConverter(typeof(StringConverter))] public object Tag { get; set; }
2 // // 摘要: // 將窗體顯示為模式對話框。 // // 返回結果: // System.Windows.Forms.DialogResult 值之一。 // // 異常: // T:System.InvalidOperationException: // 正在顯示的窗體已經可見。 - 或 - 正在顯示的窗體處於禁用狀態。 - 或 - 正在顯示的窗體不是頂級窗口。 - 或 - 窗體顯示為對話框中已有模式窗體。 // - 或 - 當前進程不在用戶交互模式下運行 (有關詳細信息,請參閱 System.Windows.Forms.SystemInformation.UserInteractive)。 public DialogResult ShowDialog();
3、 // // 摘要: // 釋放由 System.ComponentModel.Component 使用的所有資源。 public void Dispose();
七、窗口最大化,最小化
1 private void button1_Click(object sender, EventArgs e) 2 { 3 this.WindowState = FormWindowState.Maximized; 4 this.notifyIcon1.Visible = true; 5 } 6 7 private void button2_Click(object sender, EventArgs e) 8 { 9 this.WindowState = FormWindowState.Minimized; 10 this.notifyIcon1.Visible = true; 11 } 12 private void button3_Click(object sender, MouseEventArgs e) 13 { 14 this.WindowState = FormWindowState.Normal; 15 this.Visible = true; 16 }
this.MaximizeBox = false;最大化按鈕不可用
2)窗口屏幕最大化整個屏幕
this.TopMost = true; this.FormBorderStyle = FormBorderStyle.None; this.WindowState = FormWindowState.Maximized;
3)窗口屏幕最大化,不占用狀態欄
this.Top = 0; this.Left = 0; this.FormBorderStyle = FormBorderStyle.None; this.Size = Screen.PrimaryScreen.WorkingArea.Size;
Form.StartPosition屬性,確定窗體第一次出現時的位置。這里設置為在父窗體的中間顯示。 this.StartPosition = FormStartPosition.CenterParent;
Form.HelpButton屬性,確定窗體的標題欄上是否有“幫助”按鈕。設置顯示,看上去更人性化,但實際不一定會對幫助功能進行實現。Form.HelpButton屬性,確定窗體的標題欄上是否有“幫助”按鈕。設置顯示,看上去更人性化,但實際不一定會對幫助功能進行實現。
Form.MaximizeBox屬性,確定窗體標題欄的右上角是否有最大化框。設置不讓她顯示。 this.MaximizeBox = false;
Form.MinimizeBox屬性,確定窗體標題欄的右上角是否有最小化框。設置不讓他顯示。 this.MinimizeBox = false;
Form.ShowIcon屬性,指示是否在窗體的標題欄中顯示圖標。設置不顯示。 this.ShowIcon = false;
Form.ShowInTaskbar屬性,確定窗體是否出現在Windows任務欄中。這個當然要節省任務欄的寶貴空間。
this.ShowInTaskbar = false;
Form.FormBorderStyle屬性,指示窗體的邊框和標題欄的外觀和行為。設置這個屬性將不允許拖動調整窗體的大小,同時Icon屬性將失效,並不顯示窗體標題欄圖片。
this.FormBorderStyle = FormBorderStyle.FixedDialog;
隱藏禁用三個按鈕
this.ControlBox=false
至於關閉按鈕,C#窗體編程中,並沒有單獨一個屬性來按鈕它。
這三個按鈕是一組ControlBox,將this.ControlBox=false 即可同時禁用這三個按鈕。一旦這三個按鈕都被禁用了,那就都不顯示了。
所以,關閉按鈕被禁用了,這個窗口就無法通過系統自帶的功能來關閉。必須要再寫一個關閉的功能用來關閉它。
