窗體==>>初始Windows程序

 

 初識Windows程序

01.建立Windows程序(VS)

    01.打開Visual Studio開發工具程序員

    02.選擇"文件"→"新建"→"項目" 命令.數組

    03.項目類型選擇"Visual C#".dom

    04.模板選擇"Windows窗體應用程序".ide

    05."起名"→"確認".工具

 

02.認識Windows程序

01.Form1.cs:窗口文件,程序員對窗體編寫的代碼通常都會存放在這個文件中學習

02.Form.Designer.cs:窗體設計文件,其中的代碼是由Visual Studio 自動生成的,通常不須要修改.開發工具

03.Form.resx(Form.Designer.cs中):資源文件,用來配置當前窗體所使用的字符串.圖片等資源.字體

04.Program.cs:主程序文件,其中包含程序入口的main()方法.this

03.窗體的主要屬性和方法

1.經常使用屬性

(1)Name屬性:用來獲取或設置窗體的名稱。
(2)WindowState屬性:用來獲取或設置窗體的窗口狀態。
(3)StartPosition屬性:用來獲取或設置運行時窗體的起始位置。
(4)Text屬性:該屬性是一個字符串屬性,用來設置或返回在窗口標題欄中顯示的文字。   
(5)Width屬性:用來獲取或設置窗體的寬度。
(6)Heigth屬性:用來獲取或設置窗體的高度。
(7)Left屬性:用來獲取或設置窗體的左邊緣的 x 座標(以像素爲單位)。
(8)Top屬性:用來獲取或設置窗體的上邊緣的 y 座標(以像素爲單位)。
(9)ControlBox屬性:用來獲取或設置一個值,該值指示在該窗體的標題欄中是否顯示控制框。
(10)MaximumBox屬性:用來獲取或設置一個值,該值指示是否在窗體的標題欄中顯示最大化按鈕。
(11)MinimizeBox屬性:用來獲取或設置一個值,該值指示是否在窗體的標題欄中顯示最小化按鈕。
(12)AcceptButton屬性:該屬性用來獲取或設置一個值,該值是一個按鈕的名稱,當用戶按 ENTER 鍵時就至關於單擊了窗體上的該按鈕。
(13)CancelButton屬性:該屬性用來獲取或設置一個值,該值是一個按鈕的名稱,當用戶按ESC鍵時就至關於單擊了窗體上的該按鈕。
(14)Modal屬性:該屬性用來設置窗體是否爲有模式顯示窗體。
(15)ActiveControl屬性:用來獲取或設置容器控件中的活動控件。
(16)ActiveMdiChild屬性:用來獲取多文檔界面(MDI)的當前活動子窗口。
(17)AutoScroll屬性:用來獲取或設置一個值,該值指示窗體是否實現自動滾動。
(18)BackColor屬性:用來獲取或設置窗體的背景色。
(19)BackgroundImage屬性:用來獲取或設置窗體的背景圖像。
(20)Enabled屬性:用來獲取或設置一個值,該值指示控件是否能夠對用戶交互做出響應。
(21)Font屬性:用來獲取或設置控件顯示的文本的字體。
(22)ForeColor屬性:用來獲取或設置控件的前景色。
(23)IsMdiChild屬性:獲取一個值,該值指示該窗體是否爲多文檔界面 (MDI) 子窗體。
 
(24)IsMdiContainer屬性:獲取或設置一個值,該值指示窗體是否爲多文檔界面 (MDI) 中的子窗體的容器。
(25)KeyPreview屬性:該屬性用來獲取或設置一個值,該值指示在將按鍵事件傳遞到具備焦點的控件前,窗體是否將接收該事件。
(26)MdiChildren屬性:數組屬性。
(27)MdiParent屬性:該屬性用來獲取或設置此窗體的當前多文檔界面 (MDI) 父窗體。
(28)ShowInTaskbar屬性:該屬性用來獲取或設置一個值,該值指示是否在 Windows 任務欄中顯示窗體。
(29)Visible屬性:該屬性獲取或設置一個值,該值指示是否顯示該窗體或控件。
(30)Capture屬性:若是該屬性值爲true,則鼠標就會被限定只由此控件響應,無論鼠標是否在此控件的範圍內。   
 

2.經常使用方法

(1)Show()方法
該方法的做用是讓窗體顯示出來,其調用格式爲:
窗體名.Show();
(2)Hide方法
該方法的做用是把窗體隱藏出來,其調用格式爲:
窗體名.Hide();
(3)Refresh方法
該方法的做用是刷新並重畫窗體,其調用格式爲:
窗體名.Refresh();
 
(4)Activate方法
該方法的做用是激活窗體並給予它焦點。其調用格式爲:
窗體名.Activate();
(5)Close方法
該方法的做用是關閉窗體。其調用格式爲:
窗體名.Close();
(6)ShowDialog方法
該方法的做用是將窗體顯示爲模式對話框。其調用格式爲:
窗體名.ShowDialog();  
 

04.關於窗體項目的注意點:

          01.一個解決方案下能夠包含多個項目,spa

             一個項目下能夠包含多個窗體

          02.如何設置一個項目下的某個窗體爲啓動窗體???

             解析:經過更改Program.csMain方法中最後一行代碼設置

           03.控件的Name屬性至關於隱藏值,必定要改

                真正在窗體顯示內容的是Text屬性

           04.若是一個解決方案下有多個項目,如何設置某個項目爲啓動項??

            解析:能夠對項目點擊右鍵→設爲啓動項

            05.機房的項目如何保存,或者保存後如何打開???

              解析:能夠將解決方案另存爲到指定的項目下,下次

                直接打開sln文件就能夠了

            06.事件激發錯誤問題???

              (這個正常,如今你們都事件的概念還不太理解,

               隨着學習的深刻你們就會了解)

             解析:注意何時激發事件

             07.如何讓窗體運行後沒法改變大小?

            解析:經過以下設置:

           (01).禁用最大化按鈕

            (02).設置FormBorderStyle屬性爲任何一個以Fixed開頭的屬性都OK

                                                                     

  

05.MessageBox消息框

   參數一:提示信息

   參數二:標題文本

   參數三:按鈕設置

   參數四:圖標設置

 eg: MessageBox.Show("肯定退出?","舒適提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning);

 分析:

01.按鈕設置中:

  成員名稱                                    說明

 AbortRetryIgnore                      消息框包含「停止」、「重試」和「忽略」按鈕。

 OK                                           消息框包含「肯定」按鈕。

 OKCancel                                  消息框包含「肯定」和「取消」按鈕。

 RetryCancel                               消息框包含「重試」和「取消」按鈕。

 YesNo                                       消息框包含「是」和「否」按鈕。

 YesNoCancel                              消息框包含「是」、「否」和「取消」按鈕。

02.圖標設置中

    成員名稱                                    說明

    None                                                     消息框中不顯示小圖標

   Warning /Exclamation                                   消息框中顯示

   Asterisk /Information                                    消息框中顯示                    

   Error /Hand/Stop                                          消息框中顯示

    Question                                                     消息框中顯示

06.窗體的基本控件

1.Label
標籤控件:顯示用戶不能編輯的文本,用戶沒法編輯。基本用法:
label.Text=」」顯示文本;
label.Visible=true/false是否隱藏控件。

2.Button
控件:容許用戶經過單擊來執行某種操做。
基本用法:
 1)button.Text=」」在按鈕上顯示文本;
單擊Button控件引起Click 事件,
private void button_Click(object sender,EventArags e)。
 
2)窗體的AcceptButton屬性設置了用戶每次按下Enter鍵都會 觸發的按鈕控件,
this.AcceptButton=button。
 
3)窗體的CancelButton屬性設置了用戶每次按下Esc鍵都會觸 發的按鈕控件,
this.CancelButton=button。
 
4)OnMouseEnter和OnMouseLeave事件實現鼠標指針移入移 出按鈕控件時觸發的事件。
 
3.TextBox
文本框控件:獲取用戶輸入的數據或者顯示文本,用戶可
以進行編輯,也能夠設置成只讀控件。基本用法:
1)textBox.ReadOnly=true/false設置控件是否爲只讀。
 
2)textBox.Text.Trim()方法能夠將當前文本框中的字符串的前面 和末尾的空白字符所有移除。
 
3)textBox.Focus()
方法使光標焦點處於文本框中。
 
4)textBox.PasswordChar=’’設置輸入密碼時文本框中顯示的是 設置好的字符,
textBox.UseSystemPasswordChar=true/false 設置輸入密碼時文本框中顯示的是系統默認的字符’*’。
 
5)textBox.BorderStyle屬性設置文本框的邊框類型。
 
6) textBox.Multiline=true/false設置文本框控件能夠輸入多行數據。
 
7)textBox.Width=和textBox.Height=屬性設置文本框的寬和高。
 
8)textBox.SelectionStart=Index屬性和textBox.SelectionLength= 屬性設置選擇文本框中字符串的起始位置索引和要選擇的長度。
 
9)TextChanged事件設置當文本框中的文本發生更改時引起的事件,private  void  textbox_TextChanged(object gender,EventArgs e) 

4.ComboBox

07.窗體傳值(重點)

 思路:從Login窗體傳遞登錄用戶名到Main窗體,能夠在Main窗體中定義一個公有的變量,而後在Login窗體的登錄按鈕事件中編寫以下代碼:

  Main frm=new Main();

  frm.name=txtName.Text;

  frm.Show();

  而後在Main的load事件中爲Label控件賦值。

解析:1.在接受值的窗體中定義個變量.

     2.在顯示Main窗體以前(Show以前)把值賦予name,

     3.如上圖1中在Load中顯示.

08.一些例題

01.製做計算器

主要核心代碼(在計算按鈕下):

 private void button_jisuan_Click(object sender, EventArgs e)
        {
            if (textBox_one.Text!=""&& textBox_three.Text!="")
            {
                double num1 = Convert.ToDouble(textBox_one.Text);
                double num2 = Convert.ToDouble(textBox_three.Text);
                String num = comboBox_two.Text;
                double result;
                switch (num)
                {

                    case "+":
                        result = num1 + num2;
                        textBox_jieguo.Text = result.ToString();
                        break;
                    // MessageBox.Show(result.ToString());
                    case "-":
                        result = num1 - num2;
                        textBox_jieguo.Text = result.ToString();
                        break;
                    case "*":
                        result = num1 * num2;
                        textBox_jieguo.Text = result.ToString();
                        break;
                    case "/":
                        result = num1 / num2;
                        textBox_jieguo.Text = result.ToString();
                        break;
                    default:
                        break;

                }
            }                    
             if (textBox_one.Text=="")
             {
                MessageBox.Show("請輸入第一個數","提示");
             }
             if (textBox_three.Text == "")
             {
                 MessageBox.Show("請輸入第二個數","提示");

             }
             if (comboBox_two.Text=="")
             {
                  MessageBox.Show("請選擇運算符","提示");

             }
                 
        }

2."日期"組合框中的月份改變後日會隨之改變:如1-31,2-29,4-30
                

主要核心代碼:

01.在Load中

 private void data_Load(object sender, EventArgs e) { for (int i = 1; i <=12; i++) { comboBox_yue.Items.Add(i); } }

02.在月的SelectedexChanged事件中:

private void comboBox_yue_SelectedIndexChanged(object sender, EventArgs e)
        {
            string result = comboBox_yue.Text;
            comboBox_ri.Items.Clear();
            switch (result)
            {
                case "1":
                case "3":
                case "5":
                case "7":
                case "8":
                case "10":
                case "12":
                    for (int i = 1; i <= 31; i++)
                    {
                        comboBox_ri.Items.Add(i);
                    }

                    break;
                case "4":
                case "6":
                case "9":
                case "11":
                    for (int i = 1; i <= 30; i++)
                    {
                        comboBox_ri.Items.Add(i);
                    }
                    break;
                case "2":
                    for (int i = 1; i <= 29; i++)
                    {
                        comboBox_ri.Items.Add(i);
                    }
                    break;

                default:
                    break;
            }
        }

3.猜數遊戲(有提示.且在開始以前 "猜一猜"不能用,點了"新遊戲"後才能用)
         

 

     

核心代碼:

 public partial class Guess : Form
    {
        public Guess()
        {
            InitializeComponent();
        }
        public int num = 0;//定義爲接收隨機數
        public int count = 0;
//在"新遊戲"的Click事件中
        private void button_new_Click(object sender, EventArgs e)
        {
            textBox_num.Clear();//清除上次顯示記錄
            button_guess.Enabled = true;//使"猜一猜"按鈕可用了
            Random r = new Random();//爲產生隨機數
            num=r.Next(1,5);  //產生1-5之間的隨機整數(包括1,不包括5)                             
        }

  
//在"猜一猜"按鈕的Click事件中
   private void button_guess_Click(object sender, EventArgs e)
        {
            count++;
            int num1 = 0;
            if (textBox_num.Text == ""){
               MessageBox.Show("請輸入要猜的數", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
           }
            if (textBox_num.Text != "")
            {
                num1 = Convert.ToInt32(textBox_num.Text);
                                         
                    if (num > num1)
                    {
                   
                        MessageBox.Show("小了,再猜!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                       
                    }
                    else if (num < num1)
                    {
                        MessageBox.Show("大了,再猜!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                       
                    }
                    else
                    {
                      
                        MessageBox.Show("恭喜你,猜中了!!一共猜了" + count + "", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                      
                    }

                
            }
        }
    }
相關文章
相關標籤/搜索