c# window窗口


代碼功能

一、隱藏當前窗口 

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 即可同時禁用這三個按鈕。一旦這三個按鈕都被禁用了,那就都不顯示了。

所以,關閉按鈕被禁用了,這個窗口就無法通過系統自帶的功能來關閉。必須要再寫一個關閉的功能用來關閉它。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM