第9章 Windows窗體應(yīng)用程序開發(fā)_第1頁
第9章 Windows窗體應(yīng)用程序開發(fā)_第2頁
第9章 Windows窗體應(yīng)用程序開發(fā)_第3頁
第9章 Windows窗體應(yīng)用程序開發(fā)_第4頁
第9章 Windows窗體應(yīng)用程序開發(fā)_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第第9 9章章 WindowsWindows窗體應(yīng)用程序開發(fā)窗體應(yīng)用程序開發(fā)本本 章章 要要 點點 WindowsWindows窗體開發(fā)基礎(chǔ)窗體開發(fā)基礎(chǔ) 常用常用WindowsWindows控件控件 WindowsWindows菜單設(shè)計菜單設(shè)計 工具欄與狀態(tài)欄設(shè)計工具欄與狀態(tài)欄設(shè)計 通用對話框編程通用對話框編程9.1 Windows9.1 Windows窗體編程窗體編程 9.1.1 WinForms9.1.1 WinForms概述概述控件可視化界面組件統(tǒng)稱為控件p程序執(zhí)行流程控制模式:程序執(zhí)行流程控制模式:u過程控制模式(非圖形用戶界面應(yīng)用程序的傳統(tǒng)控制模式)過程控制模式(非圖形用戶界面應(yīng)用程

2、序的傳統(tǒng)控制模式)u事件驅(qū)動模式(事件驅(qū)動模式(WindowsWindows圖形用戶界面應(yīng)用程序的控制模式)圖形用戶界面應(yīng)用程序的控制模式)9.1.1 WinForms9.1.1 WinForms概述概述“開始開始”“程序程序”“Microsoft Visual Studio.NET Microsoft Visual Studio.NET 20082008”“Microsoft Visual Studio.NET 2008Microsoft Visual Studio.NET 2008”9.1.1 WinForms9.1.1 WinForms概述概述9.1.1 WinForms9.1.1 Wi

3、nForms概述概述設(shè)計窗口 各種控件屬性放置控件的區(qū)域using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WindowsApplication3 public partial class Form1 : Form public Form1() InitializeComponent(); 提供了大量繪圖工具的訪問

4、權(quán)限基礎(chǔ)核心命名空間ArrayList、BitArray、Hashtable、Stack、StringCollection 和 StringTable 類 大量窗體和控件從 System.Windows.Forms.Form 派生Visual Studio .NET 生成的代碼9.1.1 WinForms9.1.1 WinForms概述概述 partial class Form1 / / 必需的設(shè)計器變量。 / private System.ComponentModel.IContainer components = null;構(gòu)造函數(shù)調(diào)用 InitializeComponent() 方法 #

5、region Windows 窗體設(shè)計器生成的代碼窗體設(shè)計器生成的代碼 / / 設(shè)計器支持所需的方法設(shè)計器支持所需的方法 - 不要不要 / 使用代碼編輯器修改此方法的內(nèi)容。使用代碼編輯器修改此方法的內(nèi)容。 / private void InitializeComponent() this.SuspendLayout(); / / Form1 / this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; th

6、is.ClientSize = new System.Drawing.Size(333, 266); this.Name = Form1; this.Text = Form1; this.ResumeLayout(false); #endregion項目的容器9.1.1 WinForms9.1.1 WinForms概述概述 / / 清理所有正在使用的資源。 / / 如果應(yīng)釋放托管資源,為 true;否則為 false。 protected override void Dispose(bool disposing) if (disposing & (components != null)

7、 components.Dispose(); base.Dispose(disposing); 釋放系統(tǒng)資源9.1.1 WinForms9.1.1 WinForms概述概述 static class Program / / 應(yīng)用程序的主入口點。 / STAThread static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); 程序的主入口點 9.1.1 WinForms9.1.1 W

8、inForms概述概述標(biāo)簽按鈕組合框列表框文本框9.1.1 WinForms9.1.1 WinForms概述概述(1 1)創(chuàng)建窗體)創(chuàng)建窗體(2 2)為窗體添加控件)為窗體添加控件(3 3)設(shè)計控件在窗體中的布局)設(shè)計控件在窗體中的布局 (4 4)設(shè)置各控件屬性)設(shè)置各控件屬性(5 5)編寫代碼,響應(yīng)控件事件)編寫代碼,響應(yīng)控件事件GUI(Graphics User GUI(Graphics User Interface)Interface),即圖形用戶,即圖形用戶界面,是指用圖形的方式界面,是指用圖形的方式實現(xiàn)人與計算機之間的交實現(xiàn)人與計算機之間的交互。互。9.1.2 9.1.2 編寫編寫G

9、UIGUI應(yīng)用程序的步驟應(yīng)用程序的步驟9.1.3 Control9.1.3 Control類類 .NET .NET中的大多數(shù)控件都派生于中的大多數(shù)控件都派生于System.Windows.Forms.ControlSystem.Windows.Forms.Control類。類。ControlControl類實現(xiàn)了所有窗體交互控件的基本功能:處理用戶鍵盤類實現(xiàn)了所有窗體交互控件的基本功能:處理用戶鍵盤輸入、處理消息驅(qū)動、限制控件大小等等。輸入、處理消息驅(qū)動、限制控件大小等等。ControlControl類的屬性類的屬性ControlControl類的屬性類的屬性ControlControl類的屬

10、性類的屬性p NameName: 9.1.4 9.1.4 控件的基本屬性控件的基本屬性用來獲取或設(shè)置控件的名稱。名稱是控件的標(biāo)識。用來獲取或設(shè)置控件的名稱。名稱是控件的標(biāo)識。p TextText: 用來獲取或設(shè)置控件的標(biāo)題文字。用來獲取或設(shè)置控件的標(biāo)題文字。p WidthWidth和和HeightHeight: 用來獲取或設(shè)置控件的大小。用來獲取或設(shè)置控件的大小。p X X和和Y Y: 用來獲取或設(shè)置控件的位置。用來獲取或設(shè)置控件的位置。p VisibleVisible: 用來獲取或設(shè)置控件是否可見。取值為用來獲取或設(shè)置控件是否可見。取值為true或或false。p EnabledEnable

11、d: 9.1.4 9.1.4 控件的基本屬性控件的基本屬性p ForeColorForeColor: 用來獲取或設(shè)置控件的前景色。用來獲取或設(shè)置控件的前景色。p BackColorBackColor: 用來獲取或設(shè)置控件的背景色。用來獲取或設(shè)置控件的背景色。p FontFont: 用來獲取或設(shè)置控件的字體。用來獲取或設(shè)置控件的字體。p BorderStyleBorderStyle: 用來獲取或設(shè)置控件的邊框。用來獲取或設(shè)置控件的邊框。用來獲取或設(shè)置控件是否對響應(yīng)交互。取值為用來獲取或設(shè)置控件是否對響應(yīng)交互。取值為true或或false。p AutoSizeAutoSize: 9.1.4 9.1

12、.4 控件的基本屬性控件的基本屬性p AnchorAnchor: p DockDock: 獲取或設(shè)置控件停靠到父容器的哪一個邊緣。獲取或設(shè)置控件??康礁溉萜鞯哪囊粋€邊緣。p TextAlignTextAlign: 用來確定文本對齊方式。用來確定文本對齊方式。p CursorCursor: 用來獲取或設(shè)置鼠標(biāo)移到控件上時,被顯示的鼠標(biāo)指針類型。用來獲取或設(shè)置鼠標(biāo)移到控件上時,被顯示的鼠標(biāo)指針類型。用來獲取或設(shè)置控件是否自動調(diào)整大小。取值為用來獲取或設(shè)置控件是否自動調(diào)整大小。取值為true或或false。獲取或設(shè)置控件的哪些邊緣錨定到其容器邊緣。獲取或設(shè)置控件的哪些邊緣錨定到其容器邊緣。(1)Na

13、me: 用來獲取或設(shè)置控件的名稱。名用來獲取或設(shè)置控件的名稱。名稱是控件的標(biāo)識。稱是控件的標(biāo)識。(2)Text: 用來獲取或設(shè)置控件的標(biāo)題文字。用來獲取或設(shè)置控件的標(biāo)題文字。(3)Width和和Height: 用來獲取或設(shè)置控件的大小。用來獲取或設(shè)置控件的大小。(4)X和和Y: 用來獲取或設(shè)置控件的位置。用來獲取或設(shè)置控件的位置。(5)Visible: 用來獲取或設(shè)置控件是否可見。用來獲取或設(shè)置控件是否可見。取值為取值為true或或false。(6)Enabled: 用來獲取或設(shè)置控件是否對響應(yīng)用來獲取或設(shè)置控件是否對響應(yīng)交互。取值為交互。取值為true或或false。(7)ForeColor

14、: 用來獲取或設(shè)置控件的前景色。用來獲取或設(shè)置控件的前景色。(8)BackColor: 用來獲取或設(shè)置控件的背景色。用來獲取或設(shè)置控件的背景色。(9)Font: 用來獲取或設(shè)置控件的字體。用來獲取或設(shè)置控件的字體。(10)BorderStyle: 用來獲取或設(shè)置控件的邊框。用來獲取或設(shè)置控件的邊框。(11)AutoSize: 用來獲取或設(shè)置控件是否自動用來獲取或設(shè)置控件是否自動調(diào)整大小。取值為調(diào)整大小。取值為true或或false。(12)Anchor: 獲取或設(shè)置控件的哪些邊緣錨獲取或設(shè)置控件的哪些邊緣錨定到其容器邊緣。定到其容器邊緣。(13)Dock: 獲取或設(shè)置控件??康礁溉萜鳙@取或設(shè)置

15、控件停靠到父容器的哪一個邊緣。的哪一個邊緣。(14) TextAlign: 用來確定文本對齊方式。用來確定文本對齊方式。(15)Cursor: 用來獲取或設(shè)置鼠標(biāo)移到控件用來獲取或設(shè)置鼠標(biāo)移到控件上時,被顯示的鼠標(biāo)指針的類型。上時,被顯示的鼠標(biāo)指針的類型。 在窗體上放置一個圖片框、一個在窗體上放置一個圖片框、一個“顯示顯示”按鈕和一個按鈕和一個“隱藏隱藏”按鈕。開始運行時,圖片不可見,按鈕。開始運行時,圖片不可見,“顯示顯示“按鈕按鈕可用,可用,“隱藏隱藏”按鈕不可用。單擊按鈕不可用。單擊“顯示顯示”按鈕后,圖片按鈕后,圖片顯示出來,顯示出來,“顯示顯示”按鈕變成不可用,而按鈕變成不可用,而“

16、隱藏隱藏”按鈕變按鈕變成可用。成可用。例例9-19-1:圖片的顯示和隱藏:圖片的顯示和隱藏問題描述9.1.5 9.1.5 事件和事件處理事件和事件處理 事件處理程序是綁定到事件的方法。當(dāng)引發(fā)事件時,執(zhí)事件處理程序是綁定到事件的方法。當(dāng)引發(fā)事件時,執(zhí)行事件處理程序內(nèi)的代碼。每個事件處理程序提供兩個處理行事件處理程序內(nèi)的代碼。每個事件處理程序提供兩個處理事件的參數(shù)。如下為事件的參數(shù)。如下為Button Button 控件的控件的 Click Click 事件的事件處理事件的事件處理程序:程序:第一個參數(shù)第一個參數(shù) sender 提供對引發(fā)事件的對象的引用。第二個參數(shù)提供對引發(fā)事件的對象的引用。第二

17、個參數(shù)e傳遞針傳遞針對要處理的事件的對象。通過引用對象的屬性(有時引用其方法)可獲得對要處理的事件的對象。通過引用對象的屬性(有時引用其方法)可獲得一些信息,如鼠標(biāo)事件中鼠標(biāo)的位置或拖放事件中傳輸?shù)臄?shù)據(jù)。一些信息,如鼠標(biāo)事件中鼠標(biāo)的位置或拖放事件中傳輸?shù)臄?shù)據(jù)。private void button1_Clicked(object sender, System.EventArgs e) p 鍵盤事件:鍵盤事件: 當(dāng)用戶對鍵盤進行操作時,系統(tǒng)會產(chǎn)生相應(yīng)的鍵盤當(dāng)用戶對鍵盤進行操作時,系統(tǒng)會產(chǎn)生相應(yīng)的鍵盤事件。當(dāng)用戶按下某個鍵時,就會發(fā)生事件。當(dāng)用戶按下某個鍵時,就會發(fā)生KeyDownKeyDown事

18、件,事件,隨后便發(fā)生隨后便發(fā)生KeyPressKeyPress事件。而當(dāng)用戶釋放某個鍵時,發(fā)事件。而當(dāng)用戶釋放某個鍵時,發(fā)生生KeyUpKeyUp事件。當(dāng)用戶按住某個鍵不放時,事件。當(dāng)用戶按住某個鍵不放時,KeyDownKeyDown和和KeyPressKeyPress事件會不停地重復(fù)觸發(fā)。事件會不停地重復(fù)觸發(fā)。9.1.5 9.1.5 事件和事件處理事件和事件處理p 鼠標(biāo)事件:鼠標(biāo)事件: 鼠標(biāo)是一種定位輸入設(shè)備,通常有兩個或三個按鼠標(biāo)是一種定位輸入設(shè)備,通常有兩個或三個按鈕(左、中和右按鈕),還可能有滾輪。它的基本操鈕(左、中和右按鈕),還可能有滾輪。它的基本操作方式主要有:單擊、雙擊和滾動。

19、作方式主要有:單擊、雙擊和滾動。 9.1.5 9.1.5 事件和事件處理事件和事件處理ControlControl類的事件類的事件 ControlControl類的方法類的方法ControlControl類的方法類的方法例例9-29-2:圖片顯示控制:圖片顯示控制問題描述 窗體上用圖片框顯示一張圖片。當(dāng)在圖片框上單擊鼠窗體上用圖片框顯示一張圖片。當(dāng)在圖片框上單擊鼠標(biāo)左鍵時圖片放大標(biāo)左鍵時圖片放大10%10%,單擊鼠標(biāo)右鍵時圖片縮小,單擊鼠標(biāo)右鍵時圖片縮小10%10%。鼠。鼠標(biāo)在圖片框上移動時,窗體標(biāo)題顯示當(dāng)前位置坐標(biāo)。標(biāo)在圖片框上移動時,窗體標(biāo)題顯示當(dāng)前位置坐標(biāo)。9.2 9.2 常用控件常用控

20、件標(biāo)簽(標(biāo)簽(LabelLabel):用于顯示用戶不能編):用于顯示用戶不能編輯的文本或圖象,起標(biāo)注或說明作用。輯的文本或圖象,起標(biāo)注或說明作用。該控件不能獲得焦點。該控件不能獲得焦點。9.2.1 9.2.1 標(biāo)簽標(biāo)簽標(biāo)簽 標(biāo)簽的屬性、事件與方法標(biāo)簽的屬性、事件與方法9.2.1 9.2.1 標(biāo)簽標(biāo)簽按鈕(按鈕(ButtonButton):提供用戶與應(yīng)用程序):提供用戶與應(yīng)用程序的交互,單擊按鈕來執(zhí)行相應(yīng)的操作。的交互,單擊按鈕來執(zhí)行相應(yīng)的操作。 9.2.2 9.2.2 按鈕按鈕按鈕 按鈕的屬性、事件與方法按鈕的屬性、事件與方法9.2.2 9.2.2 按鈕按鈕9.2.2 9.2.2 按鈕按鈕Cl

21、ickClick事件練習(xí)。事件練習(xí)。private void button1_Click(object sender,System.EventArgs e) MessageBox.Show(this,你點擊了你點擊了確定確定按鈕。按鈕。, 提示信息提示信息,MessageBoxButtons.OK, MessageBoxIcon.Information);9.2.2 9.2.2 按鈕按鈕MouseEnterMouseEnter事件練習(xí)。事件練習(xí)。private void button1_MouseEnter(object sender,System.EventArgs e) /顏色在顏色在Sy

22、stem.Drawing名稱空間下名稱空間下 this.button1.BackColor=Color.Red; 9.2.2 9.2.2 按鈕按鈕MouseLeaveMouseLeave事件練習(xí)。事件練習(xí)。private void button1_MouseLeave(object sender,System.EventArgs e) this.button1.BackColor=SystemColors.Control; 文本框(文本框(TextBoxTextBox):文本框經(jīng)常用于獲):文本框經(jīng)常用于獲取用戶輸入或顯示文本,通常用于可編輯取用戶輸入或顯示文本,通常用于可編輯文本,也可以設(shè)定

23、其成為只讀控件。文本文本,也可以設(shè)定其成為只讀控件。文本框能夠顯示多行數(shù)據(jù),并添加基本的格式框能夠顯示多行數(shù)據(jù),并添加基本的格式設(shè)置。設(shè)置。 9.2.3 9.2.3 文本框文本框文本框?qū)賹?性性說說 明明方方 法法說說 明明事事 件件說說 明明TextText屬性是文本框最重要的屬性,要屬性是文本框最重要的屬性,要顯示的文本就包含在顯示的文本就包含在TextText屬性中。屬性中。TextText屬性可以在設(shè)計窗口時使用屬性屬性可以在設(shè)計窗口時使用屬性窗口設(shè)置,也可以在運行時用代碼設(shè)窗口設(shè)置,也可以在運行時用代碼設(shè)置或者通過用戶輸入設(shè)置,同樣也可置或者通過用戶輸入設(shè)置,同樣也可以在運行時通過讀

24、取以在運行時通過讀取TextText屬性來獲得屬性來獲得文本框的當(dāng)前內(nèi)容。文本框的當(dāng)前內(nèi)容。 文本框的屬性、事件與方法文本框的屬性、事件與方法9.2.3 9.2.3 文本框文本框 設(shè)計一個乘法運算窗口,如下圖所示,該窗口能設(shè)計一個乘法運算窗口,如下圖所示,該窗口能完成浮點數(shù)乘法運算。完成浮點數(shù)乘法運算。例例9-39-3:乘法運算:乘法運算說明 private void button1_Click(object sender, EventArgs e)/求積求積 double a=0, b=0, s=0; try a = Convert.ToDouble(textBox1.Text); b =

25、Convert.ToDouble(textBox2.Text); catch(Exception exp) MessageBox.Show(exp.Message); s = a * b; textBox3.Text = Convert.ToString(s); private void button2_Click(object sender, EventArgs e)/清空清空 textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); private void button3_Click(object sender, EventArgs e)

26、/退出退出 this.Close(); 設(shè)計一個登錄窗口。登錄窗口是很多應(yīng)用系統(tǒng)中不設(shè)計一個登錄窗口。登錄窗口是很多應(yīng)用系統(tǒng)中不可缺少的組成部分。通過驗證用戶輸入的用戶名和密碼,可缺少的組成部分。通過驗證用戶輸入的用戶名和密碼,決定是否允許用戶進入系統(tǒng),可在一定程度上保證系統(tǒng)決定是否允許用戶進入系統(tǒng),可在一定程度上保證系統(tǒng)的安全。的安全。例例9-49-4:登錄窗體設(shè)計:登錄窗體設(shè)計說明private void button1_Click(object sender, EventArgs e) if (this.textBox1.Text = “abc”) & (this.textBox

27、2.Text = “123”) MessageBox.Show(“登錄成功登錄成功”); else MessageBox.Show(“輸入錯誤!輸入錯誤!”); private void button2_Click(object sender, EventArgs e) this.textBox1.Clear(); this.textBox2.Clear(); this.textBox1.Focus ();(); 單選按鈕(單選按鈕(RadioButtonRadioButton):單選按鈕):單選按鈕(RadioButtonRadioButton)通常成組出現(xiàn),用于)通常成組出現(xiàn),用于為用戶提

28、供兩個或多個互相排斥的選為用戶提供兩個或多個互相排斥的選項。項。 單選按鈕是以他們所在的容器劃單選按鈕是以他們所在的容器劃分組的,直接在分組的,直接在FormForm上放置的單選按上放置的單選按鈕將自動成為一組,這時鈕將自動成為一組,這時FormForm就是容就是容器,當(dāng)選中容器中的一個單選按鈕時,器,當(dāng)選中容器中的一個單選按鈕時,其他的將自動撤銷選中。其他的將自動撤銷選中。 9.2.4 9.2.4 單選按鈕控件單選按鈕控件 如果要在一個如果要在一個FormForm上創(chuàng)建多個單選按鈕組,則需要使用上創(chuàng)建多個單選按鈕組,則需要使用GroupBoxGroupBox或者或者PanelPanel控件作

29、為容器??丶鳛槿萜?。 把單選按鈕組合在一起,使它們創(chuàng)建一個邏輯單元。首把單選按鈕組合在一起,使它們創(chuàng)建一個邏輯單元。首先在窗體上拖放一個先在窗體上拖放一個GroupBoxGroupBox控件(組框),再把需要的控件(組框),再把需要的RadioButtonRadioButton按鈕放在組框的邊界內(nèi),按鈕放在組框的邊界內(nèi),RadioButtonRadioButton按鈕知按鈕知道如何改變自己的狀態(tài),以反應(yīng)組框中唯一被選中的選項。道如何改變自己的狀態(tài),以反應(yīng)組框中唯一被選中的選項。9.2.4 9.2.4 單選按鈕控件單選按鈕控件屬屬 性性說說 明明獲取或設(shè)置確定單選按鈕控件外觀的值獲取或設(shè)置確定

30、單選按鈕控件外觀的值獲取或設(shè)置與此控件關(guān)聯(lián)的文本獲取或設(shè)置與此控件關(guān)聯(lián)的文本獲取或設(shè)置獲取或設(shè)置RadioButtonRadioButton的復(fù)選框部分的位置的復(fù)選框部分的位置獲取或設(shè)置顯示在按鈕控件上的圖像獲取或設(shè)置顯示在按鈕控件上的圖像獲取或設(shè)置一個值,該值指示是否已選中控件獲取或設(shè)置一個值,該值指示是否已選中控件事事 件件說說 明明當(dāng)當(dāng) Checked Checked 屬性的值更改時發(fā)生屬性的值更改時發(fā)生在單擊控件時發(fā)生在單擊控件時發(fā)生單選按鈕的屬性、事件單選按鈕的屬性、事件9.2.4 9.2.4 單選按鈕控件單選按鈕控件例例9-59-5: RadioButtonRadioButton控

31、件的實例練習(xí)控件的實例練習(xí) 復(fù)選按鈕(復(fù)選按鈕( CheckBox CheckBox ):復(fù)選框):復(fù)選框(CheckBoxCheckBox)指示某特定條件是打)指示某特定條件是打開的還是關(guān)閉的。當(dāng)用戶希望選擇開的還是關(guān)閉的。當(dāng)用戶希望選擇一個或多個選項時,就需要使用復(fù)一個或多個選項時,就需要使用復(fù)選框。多個選框。多個CheckBoxCheckBox控件構(gòu)成一組控件構(gòu)成一組選項時,可以進行多重選擇,相互選項時,可以進行多重選擇,相互之間不影響。之間不影響。 9.2.5 9.2.5 復(fù)選按鈕控件復(fù)選按鈕控件屬屬 性性說說 明明獲取或設(shè)置確復(fù)選按鈕控件外觀的值獲取或設(shè)置確復(fù)選按鈕控件外觀的值獲取或

32、設(shè)置與此控件關(guān)聯(lián)的文本獲取或設(shè)置與此控件關(guān)聯(lián)的文本獲取或設(shè)置顯示在按鈕控件上的圖像獲取或設(shè)置顯示在按鈕控件上的圖像獲取或設(shè)置一個值,該值指示是否已選中控件獲取或設(shè)置一個值,該值指示是否已選中控件獲取或設(shè)置獲取或設(shè)置CheckBoxCheckBox的狀態(tài)的狀態(tài)獲取或設(shè)置一個值,該值指示此獲取或設(shè)置一個值,該值指示此CheckBoxCheckBox是否允許三種復(fù)是否允許三種復(fù)選狀態(tài)而不是兩種。選狀態(tài)而不是兩種。事事 件件說說 明明當(dāng)當(dāng) Checked Checked 屬性的值更改時發(fā)生屬性的值更改時發(fā)生當(dāng)當(dāng)CheckStateCheckState屬性的值更改時發(fā)生屬性的值更改時發(fā)生在單擊控件時發(fā)生

33、在單擊控件時發(fā)生復(fù)選按鈕的屬性、事件復(fù)選按鈕的屬性、事件9.2.5 9.2.5 復(fù)選按鈕控件復(fù)選按鈕控件 一個關(guān)于一個關(guān)于RadioButtonRadioButton控件以及控件以及CheckBoxCheckBox控件的使控件的使用的簡單例子。程序界面如下:用的簡單例子。程序界面如下: 例例9-69-6:簡單的學(xué)生信息調(diào)查的設(shè)計與實現(xiàn):簡單的學(xué)生信息調(diào)查的設(shè)計與實現(xiàn) private void button1_Click(object sender, EventArgs e) string name; string sex; string course=null; name = textBox1

34、.Text; if (radioButton1.Checked) sex = radioButton1.Text; else sex = radioButton2.Text; if (checkBox1.Checked) course += checkBox1.Text + ; if (checkBox2.Checked) course += checkBox2.Text + ; if (checkBox3.Checked) course += checkBox3.Text + ; if (checkBox4.Checked) course += checkBox4.Text + “; tex

35、tBox2.Show(); textBox2.Text = 姓名:姓名: + name + rnrn + 性別:性別: + sex + rnrn + 所學(xué)過的課程:所學(xué)過的課程: + course; 本案例建立一個使用單選鈕和復(fù)選鈕的應(yīng)用程序,界本案例建立一個使用單選鈕和復(fù)選鈕的應(yīng)用程序,界面上有一個文本框,兩組單選鈕和一組復(fù)選鈕。兩組單面上有一個文本框,兩組單選鈕和一組復(fù)選鈕。兩組單選鈕分別用于設(shè)置文本框的字體和字號,一組復(fù)選鈕用選鈕分別用于設(shè)置文本框的字體和字號,一組復(fù)選鈕用于設(shè)置文本框的字型。程序界面如下:于設(shè)置文本框的字型。程序界面如下: 例例9-79-7:字體設(shè)置案例:字體設(shè)置案例說

36、明 /“字體字體宋體宋體”設(shè)置設(shè)置 private void radioButton1_CheckedChanged(object sender, EventArgs e) textBox1.Font = new Font(宋體宋體, textBox1.Font.Size,textBox1.Font.Style); /“字體字體隸書隸書”設(shè)置設(shè)置 private void radioButton2_CheckedChanged(object sender, EventArgs e) textBox1.Font = new Font(隸書隸書, textBox1.Font.Size, textB

37、ox1.Font.Style); /“字體字體楷體楷體_GB2312”設(shè)置設(shè)置 private void radioButton3_CheckedChanged(object sender, EventArgs e) textBox1.Font = new Font(楷體楷體_GB2312, textBox1.Font.Size, textBox1.Font.Style); /“字號字號小五小五”設(shè)置設(shè)置 private void radioButton6_CheckedChanged(object sender, EventArgs e) textBox1.Font = new Font(t

38、extBox1.Font.Name, 9f, textBox1.Font.Style); /“字號字號三號三號”設(shè)置設(shè)置 private void radioButton5_CheckedChanged(object sender, EventArgs e) textBox1.Font = new Font(textBox1.Font.Name, 15.75f, textBox1.Font.Style); /“字號字號一號一號”設(shè)置設(shè)置 private void radioButton4_CheckedChanged(object sender, EventArgs e) textBox1.F

39、ont = new Font(textBox1.Font.Name, 26.25f, textBox1.Font.Style); /“字型字型加粗加粗”設(shè)置設(shè)置 private void checkBox1_CheckedChanged(object sender, EventArgs e) if (checkBox1.Checked) textBox1.Font = new Font(textBox1.Font.Name, textBox1.Font.Size, textBox1.Font.Style | FontStyle.Bold); else textBox1.Font = new F

40、ont(textBox1.Font.Name, textBox1.Font.Size, textBox1.Font.Style & FontStyle.Bold); /“字型字型斜體斜體”設(shè)置設(shè)置 private void checkBox2_CheckedChanged(object sender, EventArgs e) if (checkBox2.Checked) textBox1.Font = new Font(textBox1.Font.Name, textBox1.Font.Size, textBox1.Font.Style | FontStyle.Italic); el

41、se textBox1.Font = new Font(textBox1.Font.Name, textBox1.Font.Size, textBox1.Font.Style & FontStyle.Italic); /“字型字型下劃線下劃線”設(shè)置設(shè)置 private void checkBox3_CheckedChanged(object sender, EventArgs e) if (checkBox3.Checked) textBox1.Font = new Font(textBox1.Font.Name, textBox1.Font.Size, textBox1.Font.S

42、tyle | FontStyle.Underline); else textBox1.Font = new Font(textBox1.Font.Name, textBox1.Font.Size, textBox1.Font.Style & FontStyle.Underline); 列表框(列表框( ListBox ListBox ):列表框控):列表框控件用來顯示一組條目,以便讓操作件用來顯示一組條目,以便讓操作者從中選擇一條或者多條,然后進者從中選擇一條或者多條,然后進行相應(yīng)的處理。行相應(yīng)的處理。 9.2.6 9.2.6 列表框列表框p ItemsItems: 列表框的主要屬性列

43、表框的主要屬性p MultiColumnMultiColumn: p ColumnWidthColumnWidth: 獲取或設(shè)置多列獲取或設(shè)置多列ListBox 中列的寬度。中列的寬度。p SelectedIndexSelectedIndex: 獲取或設(shè)置獲取或設(shè)置ListBox中當(dāng)前選定項的從零開始的索引。中當(dāng)前選定項的從零開始的索引。獲取或設(shè)置獲取或設(shè)置ListBox 的項。的項。獲取或設(shè)置一個值,該值指示獲取或設(shè)置一個值,該值指示 ListBox 是否支持多列。是否支持多列。p SelectedItemsSelectedItems: 獲取包含獲取包含ListBox中當(dāng)前選定項的集合。中當(dāng)

44、前選定項的集合。p SelectionModeSelectionMode: 獲取或設(shè)置在獲取或設(shè)置在 ListBox 中選擇項所用的方法。中選擇項所用的方法。p SortedSorted: 獲取或設(shè)置一個值,該值指示獲取或設(shè)置一個值,該值指示 ListBox 中的項是否按字中的項是否按字母順序排序。母順序排序。p SelectedItemSelectedItem: 獲取或設(shè)置獲取或設(shè)置ListBox中的當(dāng)前選定項。中的當(dāng)前選定項。列表框的主要屬性列表框的主要屬性p Items.AddItems.Add() () p Items.ClearItems.Clear()() 從集合中移除所有的項。從

45、集合中移除所有的項。p Items.InsertItems.Insert()() 將項插入列表框的指定索引處。將項插入列表框的指定索引處。p Items.RemoveItems.Remove()() 從集合中移除指定的對象。從集合中移除指定的對象。p Items.RemoveAtItems.RemoveAt()() 移除集合中指定索引處的項。移除集合中指定索引處的項。向向 ListBox 的項列表添加項。的項列表添加項。列表框的主要方法列表框的主要方法例例9-89-8:列表框的使用舉例:列表框的使用舉例 /添加新的課程添加新的課程 private void button1_Click(obje

46、ct sender, EventArgs e) bool exit = false; if (textBox1.Text = ) MessageBox.Show(所添加的課程不能為空。所添加的課程不能為空。); else for (int i = 0; i ”按鈕單擊事件按鈕單擊事件 private void button2_Click(object sender, EventArgs e) try this.listBox2.Items.Add(this.listBox1.SelectedItem); this.listBox1.Items.Remove(this.listBox1.Sele

47、ctedItem); catch(Exception exp) MessageBox.Show(exp.Message); /”按鈕單擊事件按鈕單擊事件 private void button4_Click(object sender, EventArgs e) for(int i=0;ithis.listBox1.Items.Count;i+) this.listBox2.Items.Add(this.listBox1.Itemsi); this.listBox1.Items.Clear(); /”按鈕單擊事件按鈕單擊事件 private void button5_Click(object

48、sender, EventArgs e) for (int i = 0; i ”按鈕單擊事件按鈕單擊事件 private void button1_Click(object sender, EventArgs e) bool exit=false; for (int i = 0; i listBox2.Items.Count; i+) if (listBox2.Itemsi.ToString() = listBox1.SelectedItem.ToString() MessageBox.Show(該產(chǎn)品已經(jīng)選擇該產(chǎn)品已經(jīng)選擇); exit = true; break; if (exit = f

49、alse) listBox2.Items.Add(listBox1.SelectedItem.ToString(); /“”按鈕單擊事件 private void button3_Click(object sender, EventArgs e) for (int i = 0; i listBox1.Items.Count; i+) bool exit = false; for(int j=0;jlistBox2.Items.Count;j+) if (listBox1.Itemsi.ToString() = listBox2.Itemsj.ToString() exit = true; br

50、eak; if (exit = false) listBox2.Items.Add(listBox1.Itemsi.ToString(); /“”按鈕單擊事件 private void button4_Click(object sender, EventArgs e) listBox2.Items.Clear(); /“確定”按鈕單擊事件 private void button5_Click(object sender, EventArgs e) string name = this.textBox1.Text; string phone = this.textBox2.Text; strin

51、g comm = ; string payment = ; string acknowledgement = ; for (int i = 0; i listBox2.Items.Count; i+) comm +=listBox2.Itemsi.ToString() + ; if (radioButton1.Checked) payment = radioButton1.Text; else payment = radioButton2.Text; if (checkBox1.Checked) acknowledgement += checkBox1.Text + ; if (checkBo

52、x2.Checked) acknowledgement += checkBox2.Text + ; if (checkBox3.Checked) acknowledgement += checkBox3.Text + ; this.textBox3.Text = 姓名:姓名: + name + rn + 電話:電話: + phone + rn + 已選擇的商品:已選擇的商品: + comm + rn + 付款方式:付款方式: + payment + rn + 確認(rèn)方式:確認(rèn)方式: + acknowledgement; /“取消”按鈕單擊事件 private void button6_Click

53、(object sender, EventArgs e) this.textBox1.Clear(); this.textBox2.Clear(); boBox1.SelectedIndex = 0; this.listBox1.Items.Clear(); this.listBox2.Items.Clear(); this.checkBox1.Checked = false; this.checkBox2.Checked = false; this.checkBox3.Checked = false; this.textBox3.Clear(); ToolTipToolTip組件,其作用是當(dāng)

54、鼠標(biāo)停留在組件,其作用是當(dāng)鼠標(biāo)停留在某個與某個與ToolTipToolTip組件建立關(guān)聯(lián)的控件上一段組件建立關(guān)聯(lián)的控件上一段時間后,自動顯示該控件功能的提示信息。時間后,自動顯示該控件功能的提示信息。 主要屬性有:主要屬性有: uu ActiveActive:指示該控件當(dāng)前是否處于激指示該控件當(dāng)前是否處于激活狀態(tài)?;顮顟B(tài)。 uu AutomaticDelayAutomaticDelay:設(shè)置經(jīng)過多長時間設(shè)置經(jīng)過多長時間顯示提示信息,缺省值為顯示提示信息,缺省值為500ms500ms。 uu AutoPopDelayAutoPopDelay:設(shè)置鼠標(biāo)指針停留多設(shè)置鼠標(biāo)指針停留多長時間后消失提示信

55、息。長時間后消失提示信息。 9.2.8 ToolTip9.2.8 ToolTip控件控件 例如:向設(shè)計窗體拖放一個例如:向設(shè)計窗體拖放一個ToolTipToolTip控件,然后在構(gòu)控件,然后在構(gòu)造函數(shù)中加入下列代碼:造函數(shù)中加入下列代碼: this.toolTip1.SetToolTip(boBox1,選擇參加的小組。選擇參加的小組。); this.toolTip1.SetToolTip(boBox2,選擇左邊小組參加的項目。選擇左邊小組參加的項目。); this.toolTip1.SetToolTip(this.listBox1,各小組參加的項目列表。各小組參加的項目列表。); 運行,分別將

56、鼠標(biāo)在上述控件中停留一段時間,觀運行,分別將鼠標(biāo)在上述控件中停留一段時間,觀察顯示的提示信息。察顯示的提示信息。 PictureBoxPictureBox控件是用于顯示圖像控件是用于顯示圖像的的WindowsWindows圖片框控件。圖片框控件。9.2.9 PictureBox9.2.9 PictureBox控件控件PictureBoxPictureBox控件的主要屬性控件的主要屬性ImageImage:在在PictureBoxPictureBox中顯示的圖片。中顯示的圖片。SizeModeSizeMode:圖片在控件中的顯示方式,有如下圖片在控件中的顯示方式,有如下5 5種選擇。種選擇。Au

57、toSize:AutoSize:自動調(diào)整控件自動調(diào)整控件PictureBoxPictureBox的大小,使其等于所的大小,使其等于所包含的圖片大??;包含的圖片大??;CenterImageCenterImage:將控件的中心和圖片的中心對齊顯示。如將控件的中心和圖片的中心對齊顯示。如果控件比圖片大,則圖片將居中顯示;如果圖片比控件果控件比圖片大,則圖片將居中顯示;如果圖片比控件大,則圖片將居于控件中心,而外邊緣將被剪裁掉。大,則圖片將居于控件中心,而外邊緣將被剪裁掉。NormalNormal:圖片被置于控件的左上角。如果圖片比控件大,圖片被置于控件的左上角。如果圖片比控件大,則超出部分被剪裁掉。

58、則超出部分被剪裁掉。StretchImageStretchImage:控件中的圖像被拉伸或收縮,以適合控控件中的圖像被拉伸或收縮,以適合控件的大小,完全占滿控件。件的大小,完全占滿控件。ZoomZoom:控件中的圖片按照比例拉伸或收縮,以適合控控件中的圖片按照比例拉伸或收縮,以適合控件的大小,占滿控件的長度或高度。件的大小,占滿控件的長度或高度。 TimerTimer組件主要用于檢查是否到達(dá)事先規(guī)定的時間間隔,并在組件主要用于檢查是否到達(dá)事先規(guī)定的時間間隔,并在到達(dá)該時間間隔觸發(fā)的事件中執(zhí)行需要的功能。到達(dá)該時間間隔觸發(fā)的事件中執(zhí)行需要的功能。1 1、常用的基本屬性、常用的基本屬性(1 1)E

59、nabledEnabled: 是否啟用計時,是否啟用計時,falsefalse表示停止計時,表示停止計時,truetrue表示開始計時。表示開始計時。(2 2)IntervalInterval: 觸發(fā)觸發(fā)TickTick事件的間隔時間,以事件的間隔時間,以msms為單位,默認(rèn)為為單位,默認(rèn)為100ms100ms。2 2、常用的基本事件、常用的基本事件TickTick事件:事件: 每隔每隔IntervalInterval屬性指定的時間都會觸發(fā)。屬性指定的時間都會觸發(fā)。TimerTimer控件控件9.2.10 9.2.10 日期時間相關(guān)控件日期時間相關(guān)控件 例例9-119-11:設(shè)計一個簡單的時鐘

60、顯示窗體。:設(shè)計一個簡單的時鐘顯示窗體。說明程序運行初始界面程序運行初始界面單擊單擊“開始開始”按鈕按鈕單擊單擊“停止停止”按鈕按鈕例例9-119-11:設(shè)計一個簡單的時鐘顯示窗體。:設(shè)計一個簡單的時鐘顯示窗體。實現(xiàn)步驟(1 1)新建一個名為)新建一個名為TimerExampleTimerExample的的WindowsWindows應(yīng)用程序項目,將應(yīng)用程序項目,將Form1.csForm1.cs改名為改名為FormTimer.csFormTimer.cs。(2 2)調(diào)整窗體到適當(dāng)大??;設(shè)置)調(diào)整窗體到適當(dāng)大?。辉O(shè)置TextText屬性為屬性為“時鐘顯示窗時鐘顯示窗體體”。(3 3)在)在FormForm窗體中添加一個窗體中添加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論