版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第 7 章 Windows應(yīng)用程序開發(fā)初步——常用窗體控件,窗體的屬性和方法 常用的輸入輸出方法 標(biāo)簽控件和超鏈接控件 文本控件、單選按鈕和復(fù)選按鈕 圖片控件和進(jìn)度條控件 選項卡控件和Timer控件 Windows應(yīng)用程序的結(jié)構(gòu)和開發(fā)步驟,第 7 章 Windows應(yīng)用程序開發(fā)初步——常用窗體控件,窗體的屬性和方法 常用的輸入輸出方法 標(biāo)簽控件和超鏈接控件 文本控件、單選按鈕和復(fù)選按鈕 圖片控件和進(jìn)度條控件 選
2、項卡控件和Timer控件 Windows應(yīng)用程序的結(jié)構(gòu)和開發(fā)步驟,7.1 Windows窗體簡介,Windows應(yīng)用程序是運行在Windows系列操作系統(tǒng)的應(yīng)用軟件,具有和Windows操作系統(tǒng)相似的界面,在Visual Studio 2008中利用窗體控件可以快速開發(fā)Windows應(yīng)用程序。,7.1.1 Windows窗體應(yīng)用程序,使用Windows窗體,可以創(chuàng)建基于Windows的功能強大的應(yīng)用程序。一個標(biāo)準(zhǔn)的Windows窗
3、體應(yīng)用程序由窗體、控件及其事件所組成。窗體是Windows應(yīng)用程序的基本組成部分,它提供了定義窗體外觀的屬性、定義行為的方法和定義與用戶交互的事件。下面我們將詳細(xì)介紹窗體的屬性、方法和事件。,7.1.2 窗體的屬性,在程序設(shè)計階段,可以對窗體或窗體內(nèi)控件的屬性進(jìn)行屬性值的更改。窗體和控件都有屬于自己本身的屬性,每個屬性都有默認(rèn)值,窗體和各控件間有些屬性彼此都具有,有些屬性可能是自己所獨有。例如:Text、Name等屬性很多控件和窗體
4、都擁有這些屬性。屬性值的設(shè)置和修改,在程序設(shè)計階段有兩種方式:一種是直接在屬性窗口內(nèi)更改屬性值,另一種方式是進(jìn)入編碼窗口編寫程序時修改,在程序運行成功運行后其值發(fā)生改變。若看不到屬性窗口,可運行菜單的【視圖/屬性窗口】便可打開屬性窗口。下圖是選中窗體Form1后看到的Form1的屬性窗口。,,屬性窗口的屬性可按字母順序鈕進(jìn)行顯示,或是按分類鈕進(jìn)行分類顯示,分類鈕是按照外觀、訪問范圍、行為、布局、設(shè)計、焦點、數(shù)據(jù)來尋找屬性名稱以更改其默認(rèn)
5、值。本節(jié)選取以屬性分類的方式來介紹窗體常用的屬性。,⑴ 外觀類型的屬性,外觀類型的屬性常用的有:BackColor(背景色)、BackGroundImage(背景圖片)、Cursor(指針)、Font(字體)、ForeColor(前景色)和Text(標(biāo)題文字)等屬性。,⑵ 窗口樣式的屬性,窗口樣式的屬性常用的有Icon(標(biāo)題的圖標(biāo)文件)、MaximizeBox(最大化)、MinimizeBox(最小化)等屬性。,⑶ 布局類型的屬性,布局
6、類型的屬性比較常用的有Location(窗體位置)、Size(窗體大?。?、StartPosition(初始化位置)、WindowState(窗體狀態(tài))等屬性。StartPosition(初始化位置)屬性的設(shè)置,可決定程序窗口在屏幕出現(xiàn)時的位置,其屬性值有五種狀態(tài):Manual(手動)CenterScreen(屏幕中央)WindowsDefaultLocation(默認(rèn)值)WindowsDefaultBounds(屏幕中央并自動
7、調(diào)整窗體邊界大?。〤enterParent(父窗口中央)WindowState(窗體狀態(tài))屬性的設(shè)置,可決定程序窗口出現(xiàn)時的初始可見狀態(tài)。,7.1.3 窗體的重要方法和事件,窗體常用的方法主要有。⑴ Show方法該方法的作用是讓窗體顯示出來,其調(diào)用格式為:窗體名.Show(),如下代碼。Form2 frm=new Form2();//實例化窗體frm.Show()//顯示窗體⑵ Hide方法該方法的作用是把窗體隱
8、藏出來,其調(diào)用格式為:窗體名.Hide()。⑶ Refresh方法該方法的作用是刷新并重畫窗體,其調(diào)用格式為:窗體名.Refresh()。,⑷ Activate方法該方法的作用是激活窗體并給予它焦點。其調(diào)用格式為:窗體名.Activate();⑸ Close方法該方法的作用是關(guān)閉窗體。其調(diào)用格式為:窗體名.Close();⑹ ShowDialog方法該方法的作用是將窗體顯示為模式對話框。其調(diào)用格式為:窗體名.ShowDia
9、log();窗體常用的事件主要有。⑴ Activated事件當(dāng)使用代碼激活或用戶激活窗體時發(fā)生⑵ closing事件關(guān)閉窗體中發(fā)生。⑶ closed事件關(guān)閉窗體后發(fā)生⑷ Load事件在載入窗體時發(fā)生。如下代碼。//載入窗體時將窗體的標(biāo)題欄取消private void Form1_Load(object sender, EventArgs e){this.FormBorderStyle = FormBorder
10、Style.None;//設(shè)置窗體的邊框樣式為None},7.1.4 常用的輸入輸出方法,在Windows應(yīng)用程序中,我們經(jīng)常需要用戶輸入信息和向用戶輸出信息。在前面章節(jié)中我們介紹了如何使用控制臺輸入輸出信息,下面我們簡單介紹一下使用Windows窗體和控件輸入輸出信息。常用的可接受信息的控件有:Lable控件、TextBox控件等,我們將在下面章節(jié)中詳細(xì)向大家介紹。常用的輸出方法有:MessageBox()、Lable控件和
11、TextBox控件等。MessageBox是一個消息框?qū)ο?。要?chuàng)建消息框,需要調(diào)用MessageBox的Show()方法來實現(xiàn),,而Show()方法有很多重載方式,常用的有4種類型。,⑴ 最簡單的消息框MessageBox.Show(“消息內(nèi)容”);如圖所示。⑵ 帶標(biāo)題的消息框MessageBox.Show(“消息內(nèi)容”,“消息框標(biāo)題”);如圖所示。⑶ 帶標(biāo)題、按鈕的消息框MessageBox.Show(“消息內(nèi)容”,“消
12、息框標(biāo)題”,消息框按鈕);如圖所示。⑷ 帶標(biāo)題、按鈕、圖標(biāo)的消息框MessageBox.Show(“消息內(nèi)容”,“消息框標(biāo)題”,消息框按鈕,消息框圖標(biāo))。,第 7 章 Windows應(yīng)用程序開發(fā)初步——常用窗體控件,窗體的屬性和方法 常用的輸入輸出方法 標(biāo)簽控件和超鏈接控件 文本控件、單選按鈕和復(fù)選按鈕 圖片控件和進(jìn)度條控件 選項卡控件和Timer控件 Windows應(yīng)用程序的結(jié)構(gòu)和開發(fā)步驟,7.2 利用“積木”編
13、程序--常用Windows窗體控件,在Windows應(yīng)用程序中,控件是用戶界面的基本單元。在容器所定義的區(qū)域中,控件直接與用戶交互。Windows應(yīng)用程序支持多種控件,在Visual Studio 2008開發(fā)環(huán)境下根據(jù)功能可將控件劃分為7種類型。文本類控件(如TextBox控件)、動作類控件(如Button控件)、列表類控件(如ListBox控件)、值類控件(如CheckBox控件)、圖形顯示類控件(如PictureBox控件)、日期
14、類控件(如PictureBox控件)和容器類控件(如GroupBox控件)。下面我們將詳細(xì)介紹此類控件。,7.2.1 標(biāo)簽控件和超鏈接標(biāo)簽控件,Lable控件是一個標(biāo)簽控件。LinkLable是一個帶超鏈接的標(biāo)簽控件,它繼承于Lable控件,所以Lable控件和LinkLable控件用法相似。Lable是最常用的控件,在任何Windows應(yīng)用程序中都可以看到標(biāo)簽控件。標(biāo)簽控件用于顯示用戶不能編輯的文本或圖像,常用于對窗體上各種控件進(jìn)行
15、標(biāo)注或說明。Lable控件的Image屬性可以設(shè)置顯示的圖片。下面表格列出了Lable控件的常用成員。,成員名稱類別說明AutoSize屬性指定控件是否按內(nèi)容自動調(diào)整大小BorderStyle屬性指定控件框風(fēng)格FlatStyle屬性指定控件平面風(fēng)格Image屬性指定控件要顯示的圖像Show方法將控件的Visiable屬性設(shè)為True并顯示控件Hide方法用于隱藏控件Keypress事件當(dāng)標(biāo)
16、簽有焦點且用戶按下某個鍵時發(fā)生Click事件當(dāng)點擊標(biāo)簽時發(fā)生下面代碼將演示如何使用Lable控件進(jìn)行編程。01 label1.Text = "歡迎你";//設(shè)置Lable控件的Text屬性02 if (this.label2.Visible == true)//判斷Lable2控件是否可見03 {04 this.label2.Hide();//將Lable
17、2控件隱藏05 this.label3.Text = "顯示控件";06 return;07 },LinkLable控件能夠讓用戶向Windows窗體應(yīng)用程序添加Web樣式的鏈接。所有可以使用Lable控件的地方都可以使用LinkLable控件,另外,用戶可以將文本的一部分設(shè)置為指向某個對象或網(wǎng)頁的鏈接。該控件支持Lable控件中的所有屬性、方法和事件。下面介紹該控件的Li
18、nkArea屬性,該屬性用于表示必須顯示為超級鏈接的文本。如代碼中LinkArea(5,8)表示文本內(nèi)鏈接區(qū)域的從第五個字符開始、長度為8的字符顯示為超級鏈接。01 linkLabel1.LinkArea = new LinkArea(5,8);,7.2.2 按鈕控件,Button是一個按鈕控件,該控件允許用戶通過點擊來執(zhí)行各種操作。程序使用這個控件的時候通常需要做兩個工作。⑴ 設(shè)置按鈕屬性。⑵ 編寫Click事件方法下
19、面表格列出了Button類的主要成員及其說明。成員名稱類別說明AutoSizeMode屬性自動調(diào)節(jié)大小的模式DialogResult屬性單擊時返回窗口的結(jié)果PerformClick方法引發(fā)一個單擊事件其中DialogResult屬性比較常用,一般用于不執(zhí)行任何動作的“確定”或“取消”按鈕。但其對于那些需要條件判斷才返回的情況不適用。,下面代碼演示了Button控件的Click事件。01 private
20、 void button1_Click(object sender, EventArgs e)//Button控件的Click事件02 {03 if (true)//如果為真,返回結(jié)果給窗體04 {05 this.DialogResult=DialogResult.OK;06 }07 },7.2.3 文本框控件和分組框控件,TextBox控件是一個普通的文本
21、框控件。該控件的作用是向用戶提供輸入和顯示文本。默認(rèn)情況下,控件以單行顯示,最多可輸入2048個字符,如果設(shè)置Multiline屬性為True,將以多行的形式顯示,且最多可輸入32KB的文本。,,下面表格列出了TextBox類的主要成員及其說明:成員名稱類別說明TextAlign屬性指示應(yīng)該如何對齊編輯框內(nèi)的文本。Dock屬性停靠位置,停靠到父容器的哪一個邊緣BorderStyle屬性文本框控件的邊框類型。P
22、asswordChar屬性密碼輸入顯示的字符。Multiline屬性指示它是否為多行文本框控件。TextChanged事件Text 屬性值更改時發(fā)生。Click事件單擊文本框時發(fā)生。GetFocus事件在控件接收焦點時發(fā)生。LostFocus事件當(dāng)控件失去焦點時發(fā)生KeyPress、KeyDown事件在控件有焦點的情況下按下鍵時發(fā)生KeyUp事件在控件有焦點的情況下釋放鍵時發(fā)生通過對Tex
23、tbox控件的MaxLength和PasswordChar屬性可以實現(xiàn)限制用戶名稱長度及設(shè)置密碼文本,代碼如下。01 textBox1.MaxLength = 6;//設(shè)置文本框textBox1的最大長度為602 textBox1.PasswordChar = "*";//設(shè)置文本框顯示字符為*,,TextBox控件比較常用的方法是操作文本的方法,如AppendText方法用于在文本框中當(dāng)前顯示
24、的文本末尾添加指定的文本,Clear方法用于清空當(dāng)前文本框中顯示的文本,另外還有Copy、Cut和Paste方法。下面代碼實現(xiàn)了控件中選中文本的復(fù)制和剪切。01 if(textBox1.SelectionLength > 0)//判斷被選擇的文本長度是否大于002 textBox1.Copy();//復(fù)制文本框中被選中的文本03 if(textBox1.SelectedText != ""
25、;)//判斷文本框中有沒有文本被選中04 textBox1.Cut();//剪切文本框中北選中的文本,GroupBox是一個分組框控件。,該控件主要為其它控件提供分組,按照控件的分組來細(xì)分窗體的功能。分組框控件屬于容器控件,一般不對該控件編碼。為什么使用該控件呢?可以得到以下三個方面的好處。⑴ 對相關(guān)窗體元素進(jìn)行可視化分組以構(gòu)造一個清晰的用戶界面。⑵ 創(chuàng)建編程分組(例如,單選按鈕分組)。⑶ 設(shè)計時將多個控件作為一個單元移
26、動。,,下表列出了GroupBox類的常用成員及其說明。成員名稱類別說明AutoSizeMode屬性指定用戶界面元素自動調(diào)整自身大小的模式Text屬性與控件關(guān)聯(lián)的文本下面代碼演示了如何設(shè)置GroupBox控件的屬性.01 private void InitGroupBox(GroupBox groupBox)02 {03 groupBox.Text = "G
27、roupBox控件示例";04 groupBox.FlatStyle = FlatStyle.Flat;05 },【范例7-1】 TextBox控件示例,? 新建一個C# Windows窗體應(yīng)用程序,項目名稱為“TextBoxSample “。? 向Windows窗體中添加一個兩個文本框控件,兩個按鈕控件,設(shè)計如圖所示界面。? 雙擊窗體空白區(qū)域,切換到代碼視圖,在Form_Loa
28、d事件中編寫如下代碼(代碼7-1-1.txt)。,7.2.4 單選按鈕控件和復(fù)選框控件,RadioButton控件是一個單選按鈕。在同一容器控件中,有兩個或兩個以上的RadioButton控件將產(chǎn)生互斥。也就是說,只能選擇一個。下表列出了RadioButton類的主要成員及其說明。,,01 if (radioButton1.Checked == false && radioButton2.Checked == f
29、alse)02 {//如radioButton1和radioButton2的Checked為false提示選擇性別03 MessageBox.Show("請選擇性別");04 },CheckBox控件是一個復(fù)選框。,該控件默認(rèn)用于向用戶提供兩種狀態(tài)選擇:True和False。當(dāng)其TreeState屬性為True時,可以設(shè)置三種狀態(tài),另外一種為不確定狀態(tài)(Indeterminate)。下表
30、列出了CheckBox類的常用屬性及其說明。成員名稱類別說明Checked屬性指示組件是否處于選中狀態(tài)Enabled屬性指示是否已啟用該控件ThreeState屬性指示CheckBox是否會允許三種選中狀態(tài),而不是兩種狀態(tài)Click事件單擊組件時發(fā)生CheckedChanged事件每當(dāng)Check屬性更改時發(fā)生CheckStateChanged事件每當(dāng)更改CheckState屬性時發(fā)生Focu
31、s方法為控件輸入焦點下面代碼演示了使用Checked屬性判斷復(fù)選框是否選中,并給出提示信息。01 if (this.checkBox1.Checked == false && this.checkBox2.Checked ==false && checkBox3.Checked == false)// //如radioButton1、 radioButton2和radioButton3的C
32、hecked為false提示選擇一項02 {03 MessageBox.Show("請至少選一項,謝謝!");04 return;05 },,01 if (radioButton1.Checked == false && radioButton2.Checked == false)02 {//如radioButton1和
33、radioButton2的Checked為false提示選擇性別03 MessageBox.Show("請選擇性別");04 },下面代碼演示了通過在CheckedChanged事件處理程序中編寫代碼,給出提示信息。01 private void checkBox1_CheckedChanged(object sender, EventArgs e)02 {03 if (
34、this.checkBox1.Checked == true) //判斷是否選擇了checkBox104 {05 MessageBox.Show("你選擇的是checkBox1");//顯示選擇的內(nèi)容06 }07 },【范例7-2】 Button控件示例,? 新建一個C# Windows窗體應(yīng)用程序,項目名稱為“ButtonControl”。? 向Window
35、s窗體中添加四個Lable控件,一個TextBox控件,兩個RadioButton控件,三個CheckBox控件和一個Button控件,設(shè)計如圖所示界面。? 切換到代碼視圖,在提交信息按鈕的Click事件中編寫如下代碼(代碼7-2.txt)。,7.2.5 列表框控件和組合框控件,ListBox是一個列表框控件,該控件可以顯示較長的選項列表,用戶可從中選擇一項或多項。該控件默認(rèn)顯示一列選項。當(dāng)ListBox控件的MultiColum
36、n屬性為True時,列表以多列形式顯示項。如果項總數(shù)超出可以顯示的項數(shù),則自動向ListBox控件添加滾動條。ListBox控件列表中的每個元素成為項。,下表列出了ListBox類的常用成員及其說明。,成員名稱類別說明DataSource屬性指示此控件將用來獲取其項的列表Items屬性列表框中的項。SelectedItem屬性指定控件中當(dāng)前選定內(nèi)容的對象SelectedIndexChanged事件Select
37、edIndex屬性值更改進(jìn)發(fā)生SelectedValueChanged事件在ListControl上更改SelectedValue屬性的值時引發(fā)的事件續(xù)表成員名稱類別說明Add()方法向ListBox的項列表添加項AddRange()方法向ListBox的項列表添加項的數(shù)組Clear()方法向ListBox中移除所有項Insert()方法將一項插入集全中指定索引處Remove()方法向List
38、Box中移除指定項RemoveAt()方法向ListBox中指定索引處的項我們將重點介紹一個Items屬性。該屬性使用戶可以獲取對當(dāng)前存儲在ListBox中的項列表的應(yīng)用。通過此引用,可以在集合中添加項,移除項和獲得項的數(shù)目。,下面代碼演示了如何使用ListBox類的方法實現(xiàn)向列表中添加、修改項,01 //單擊添加按鈕事件02 private void btnAdd_Click(object sender, Eve
39、ntArgs e)03 {04 if (this.txtInput.Text != "")//如果文本框非空,則進(jìn)行添加05 {06 this.listBox1.Items.Add(this.txtInput.Text);07 this.txtInput.Text = "";//添加完畢,文本框置空08
40、 }09 },,10 //單擊修改按鈕事件11 private void btnUpd_Click(object sender, EventArgs e)12 {13 if (nSelectedIndex -1)14 {15 this.listBox1.Items[nSelectedIndex] = this.txtInput.Text;
41、16 //對選中的那一條的內(nèi)容進(jìn)行修改17 }18 },ComboBox是一個組合框控件。,該控件可讓用戶輸入或下拉選擇內(nèi)容。它結(jié)合了TextBox控件和ListBox控件的功能。組合框(ComboBox)控件幾乎支持列表框控件的所有屬性。下表列出了ComboBox類的常用成員及其說明成員名稱類別說明DropDownStyle屬性此屬性表示ComboBox的樣式Ite
42、ms屬性組合框中的項MaxDropDownItems屬性在下拉列表框中顯示的最多項數(shù)Click事件單擊組件時發(fā)生SelectedIndexChanged事件SelectedIndex屬性值更改時發(fā)生SelectedValueChanged,,事件在ListControl上更改SelectedValue屬性的值時引發(fā)其中DropDownStyle屬性取值可以為Simple、DropdownList和Dropd
43、own等。取值為DropDown時,文本部分可編輯,用戶必須單擊箭頭按鈕來顯示列表部分,這是默認(rèn)值;取值為DropDownList時,用戶不能直接編輯文本部分,必須單擊箭頭按鈕來顯示列表部分;取值為Simple時,文本部分可編輯,而且列表部分可見。例如,將ComboBox控件的DropDownStyle屬性設(shè)置為“DropDownList”代碼如下。01 comboBox1.DropDownStyle = ComboBoxSty
44、le.DropDownList;ComboBox最重要的事件是SelectedIndexChange事件,該事件主要在SelectedIndex屬性更改后發(fā)生。,【范例7-3】 帶查詢功能的ComboBox控件,? 啟動Visual Studio 2008,新建一個C# Windows窗體應(yīng)用程序,項目名稱為“ComboBoxSample“。? 向Windows窗體中添加兩個Lable控件,一個GroupBox控件,一個Comb
45、oBox控件,設(shè)計如圖所示界面。? 切換到代碼視圖,在窗體的Form_Load事件中編寫如下代碼(代碼7-3.txt)。,7.2.6 圖片框控件和進(jìn)度條控件,PictureBox控件是一個圖片顯示控件。該控件可以顯示的圖片格式有:BMP、GIF、JPEG、ICO和圖元文件等。其SizeMode屬性可以設(shè)置圖片的顯示方式,如縮放、拉伸、自動大小等。成員名稱類別說明BorderStyle屬性指定控件邊框的風(fēng)格Enabl
46、ed屬性指定控件是否可用Image屬性指定控件顯示的圖片ImageLocation屬性指定圖片的位置SizeMode屬性指定圖片的顯示方式WaitOnLoad屬性確定圖像是否是同步加載的,下面對比較常用的成員進(jìn)行詳細(xì)介紹。SizeMode屬性。此屬性用于設(shè)置PictureBox控件將如何處理圖像位置和大小。語法:public PictureBoxSizeMode SizeMode{get;set;
47、} 屬性值:PictureBoxSizeMode值之一,默認(rèn)為Normal。PictureBoxSizeMode:一個返回值,用來處理圖像位置和大小。PictureBoxSizeMode屬性值及其說明如下表。屬性值說明Normal圖像被置于PictureBox的左上角。如果圖像比包含它的PictureBox大,則該圖像將被剪裁掉。StretchImagePictureBox中的圖像被拉伸或收縮,以適合PictureB
48、ox的大小。AutoSize調(diào)整PictureBox大小,使其等于所包含的圖像大小。CenterImage如果PictureBox比圖像大,則圖像將居中顯示。如果圖像比 PictureBox大,則圖片將居于PictureBox中心,而外邊緣將被剪裁掉。Zoom圖像大小按其原有的大小比例被增加或減小。如下代碼演示了將圖像居中顯示。01 this.PictureBox1.SizeMode = PictureBoxSiz
49、eMode.CenterImage;ProgressBar控件時一個進(jìn)度顯示控件。該控件可以讓用戶了解一個操作的進(jìn)度,常用于加載,,大量數(shù)據(jù)和大文件,幫助用戶了解等待一定長時間的操作完成所需的時間。成員名稱類別說明Maximum屬性此ProgressBar正使用的范圍的上限Minimum屬性此ProgressBar正使用的范圍是下限Step屬性指定Value屬性遞增的值Value屬性ProgressB
50、ar的當(dāng)前值,在由最小和最大值指定的范圍之內(nèi)PerformStep方法該方法按照Step屬性中指定的數(shù)量增加進(jìn)度欄的值Step屬性用于指定Value屬性遞增的值。其值為每次調(diào)用PerformStep方法增加進(jìn)度欄所根據(jù)的數(shù)量,默認(rèn)值為10.。,下面代碼演示了如何使用ProgressBar控件的屬性和方法。,01 private void button1_Click(object sender, EventArgs e)0
51、2 {03 this.pgrLoad.Maximum = 100;//設(shè)定起始值04 this.pgrLoad.Minimum = 0;//設(shè)定結(jié)束值05 this.pgrLoad.Step = 10;//設(shè)定步長值06 for (int i = 0; i <= 100; i++)//循環(huán)100次,演示ProgressBar的運行07
52、 {08 if (i % 10 == 0)//判斷是否為10的倍數(shù)09 pgrLoad.PerformStep();//增進(jìn)一步10 }11 },7.2.7 日期控件,DateTimePicker控件允許用戶從日期或時間列表中選擇單個項,用來表示日期。該控件顯示為兩部分:一部分為下拉列
53、表(以文本形式顯示的日期),另一部分為網(wǎng)格(在單擊列表旁邊的向下箭頭時顯示)。用戶也可以直接輸入日期和時間。通過設(shè)置該控件的Format屬性可以選擇顯示格式。成員名稱類別說明Checked屬性當(dāng)ShowSelectBox為true時,確定是否選中復(fù)選框,以指示用戶已選擇了某個值。Format屬性確定日期和時間是用標(biāo)準(zhǔn)格式顯示還是用自定義個數(shù)顯示。MaxDate屬性可以選擇的最大日期,,MinDate屬性
54、可以選擇的最小日期ShowUpDown屬性指示是否使用數(shù)值調(diào)節(jié)鈕控件(也稱為 up-down 控件)調(diào)整日期/時間值DropDown事件在下拉日歷將要下拉時發(fā)生CloseUp事件在下拉日歷被關(guān)閉并消失時發(fā)生ToString方法返回表示當(dāng)前DateTimePicker控件的字符串GetType方法獲取當(dāng)前實例的System.Type下面詳細(xì)介紹DateTimePicker控件的常用成員⑴ Value屬性。
55、此屬性指當(dāng)前控件的日期或時間值。屬性值為分配給控件的DateTime值。,⑵ ToString方法。用于返回表示當(dāng)前DateTimePicker控件的字符串。返回值返回表示當(dāng)前DateTimePicker的字符串,該字符串包括該控件的類型和Value屬性。下面代碼演示了如何使用DateTimePicker控件的屬性、事件和方法01 public partial class frmData : Form//窗體名為frm
56、Data02 {03 private void dateTimePicker1_CloseUp(object sender, EventArgs e)04 {//下拉日歷關(guān)閉時執(zhí)行如下代碼05 this.textBox1.Text = dateTimePicker1.Value.ToString();06 }07
57、 private void button1_Click(object sender, EventArgs e)08 {//設(shè)置日期和時間格式09 dateTimePicker1.Format = DateTimePickerFormat.Custom;10 this.dateTimePicker1.CustomFormat = &
58、quot;dddd dd MMM yyyy";11 }12 },7.2.8 選項卡控件,TabControl控件也稱為分頁控件。該控件可以添加多個選項卡,然后在選項卡上添加子控件。這樣就可以把窗體設(shè)計成多頁,使窗體的功能劃分為多個部分。TabControl控件的標(biāo)簽可以顯示文本信息,也可以顯示圖標(biāo)。下表列出了TabControl類的主要成員及其說明。成員名稱類別說明Align
59、ment屬性確定選項卡是否顯示在控件的頂部,底部,左側(cè)或右側(cè)(在左側(cè)或右側(cè)時將隱式地分為多行)指示代碼中用來標(biāo)識該對象的名稱Appearance屬性指示選項卡是繪制成按鈕還是繪制成普通選項卡DrawMode屬性指示是由系統(tǒng)還是由用戶繪制標(biāo)題,,Multiline 屬性指示當(dāng) TabControl 中包括很多標(biāo)簽時,標(biāo)簽頁的標(biāo)簽是否可以換行TabPages屬性獲取該選項卡控件中選項卡頁的集合TabPage
60、s屬性值TabPageCollection,它包含TabControl中的TabPage對象。此集合中的選項卡頁的順序反映了選項卡在控件中出現(xiàn)的順序。,下面代碼演示了在程序運行時向TabPages中添加項。,01 this.tabPage1.Text = "功能1";//設(shè)置選項卡的名稱02 this.tabPage2.Text = "功能2";//設(shè)置選項卡的名稱03
61、 string strName = "功能" + Convert.ToString(this.tabControl1.TabPages.Count + 1);//將選項卡的名稱按個數(shù)顯示,如功能、功能、功能等04 string strTap = "tabPage" + Convert.ToString(this.tabControl1.TabPages.Count);05 t
62、his.tabControl1.TabPages.Add(strTap, strName);//添加新的選項卡,7.2.9 Timer控件,Timer控件是一個定時引發(fā)事件的組件。該組件每隔一個指定的周期產(chǎn)生一個Tick事件,接收到此事件就可以執(zhí)行相應(yīng)的動作。下表列出了Timer控件的主要成員以及說明。成員名稱類別說明 Enable屬性啟用Elapsed事件生成 Interval屬性Elapsed事件
63、的頻率(以毫秒為單位)Tick 事件每當(dāng)經(jīng)過指定的時間間隔時發(fā)生Start()方法啟動計時器Stop()方法停止計時器,下面對比較重要的成員進(jìn)行詳細(xì)介紹。⑴ Enable屬性。此屬性用于指定計時器是否運行,此屬性設(shè)置為True,則表示可以啟動計時器。⑵ Interval屬性。獲取或設(shè)置英法Elapsed事件的間隔。屬性值為引發(fā)Elapsed事件的間隔時間(以ms為單位)。默認(rèn)值為100ms。如下代碼。01 th
64、is.timer1.Interval = 1000;//設(shè)置Elapsed事件的頻率,間隔時間為100ms02 this.timer1.Enabled = false;//設(shè)置timer1不可用,無法啟用Elapsed事件⑶ Tick事件。該事件在當(dāng)指定的計時器間隔已過去而且計時器處于啟用狀態(tài)時發(fā)生。如下代碼。01 private void timer1_Tick(object sender, EventArgs
65、e)//Tick事件02 {03 this.label2.Text = "現(xiàn)在時間為:" + DateTime.Now.ToString(); //在label2上顯示現(xiàn)在時間04 },【范例7-4】 顯示操作進(jìn)度。? 啟動Visual Studio 2008,新建一個C# Windows窗體應(yīng)用程序,項目名稱為“TimerSample “。? 向Windows窗體中添加一個Ti
66、mer控件,一個ProgressBar控件,兩個Lable控件。在屬性窗口中將ProgressBar控件的最大值設(shè)為200,最小值設(shè)為0。,第 7 章 Windows應(yīng)用程序開發(fā)初步——常用窗體控件,窗體的屬性和方法 常用的輸入輸出方法 標(biāo)簽控件和超鏈接控件 文本控件、單選按鈕和復(fù)選按鈕 圖片控件和進(jìn)度條控件 選項卡控件和Timer控件 Windows應(yīng)用程序的結(jié)構(gòu)和開發(fā)步驟,7.3 Windows應(yīng)用程序的結(jié)構(gòu)和開發(fā)步
67、驟,一個標(biāo)準(zhǔn)的Windows窗體應(yīng)用程序由窗體、控件及其事件所組成。當(dāng)為應(yīng)用程序設(shè)計用戶界面時,通常創(chuàng)建一個從Form派生的類。然后可以添加控件、設(shè)置屬性、創(chuàng)建事件處理程序以及向窗體添加編程邏輯。添加到窗體的每個組件(如文本框、按鈕、Timer、標(biāo)簽等)都稱為控件。Windows窗體編程的一個重要方面就是控件編程。一般來說,控件都會有自己的屬性、方法以及特定的事件??丶幊痰年P(guān)鍵就是了解這些屬性、方法和事件的用法。事件是Wind
68、ows應(yīng)用程序的重要組成部分。Windows應(yīng)用程序是由事件驅(qū)動的,整個程序的運行過程都離不開事件和事件處理。程序編制也以事件處理為核心。在應(yīng)用程序結(jié)束時,需要調(diào)用Dispose()方法釋放資源,以充分利用資源。.NET框架類模型在Component類中提供Dispose()方法。當(dāng)不再需要某個組件時,調(diào)用Dispose()方法。例如,當(dāng)關(guān)閉某窗體時,Windows窗體對該窗體以及該窗體內(nèi)包含的所有控件調(diào)用Dispose()方法。通常
69、使用Dispose()來及時釋放大量資源并移除對其他對象的引用,以便它們可以由垃圾回收進(jìn)行回收。還調(diào)用它以停止與該窗體關(guān)聯(lián)的任何正在執(zhí)行的程序邏輯。應(yīng)使Dispose()方法中的代碼盡可能的簡單和可靠。Component的Dispose()方法如下。,7.3 Windows應(yīng)用程序的結(jié)構(gòu)和開發(fā)步驟,01 /// 清理所有正在使用的資源。02 /// 03 /// 如果應(yīng)釋放托管資源,為 true;否則為 fals
70、e。04 protected override void Dispose(bool disposing)//析構(gòu)函數(shù),釋放資源05 {06 if (disposing && (components != null))07 {08 components.Dispose();//調(diào)用Component類中提供Dispose方法09 }10
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- windows應(yīng)用程序開發(fā)進(jìn)階高級窗體控件
- java窗體應(yīng)用程序開發(fā)實訓(xùn)(最終版)
- windows應(yīng)用程序界面的設(shè)計
- 第17章 創(chuàng)建windows應(yīng)用程序
- 替換 access 2010 應(yīng)用程序中的日歷控件
- 5窗體與控件
- vba控件與用戶窗體
- 基于c#的windows 應(yīng)用程序設(shè)計
- vba地控件及用戶窗體
- vb 利用treeview控件實現(xiàn)一個應(yīng)用程序的導(dǎo)航
- Windows應(yīng)用程序的用戶界面設(shè)計研究.pdf
- vba的控件及用戶窗體
- 如何解決應(yīng)用程序dll為無效的windows映像
- 淺談c#開發(fā)中webbrowser控件和窗體通信案例研究
- windows server 2003 ad應(yīng)用程序目錄分區(qū)深入了解
- 基于BREW平臺的應(yīng)用程序開發(fā).pdf
- png透明窗體全攻略(控件不透明)vc++程序指導(dǎo)
- Android系統(tǒng)移植和應(yīng)用程序開發(fā).pdf
- 內(nèi)部通訊系統(tǒng)-應(yīng)用程序開發(fā)課程設(shè)計
- 基于asp的web應(yīng)用程序開發(fā)外文翻譯
評論
0/150
提交評論