版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第9章Windows應(yīng)用程序設(shè)計(jì)基礎(chǔ),2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,2,C#是一種可視化的程序設(shè)計(jì)語(yǔ)言。 Windows窗體和控件是開(kāi)發(fā)C#應(yīng)用程序的基礎(chǔ),窗體和控件在C#程序設(shè)計(jì)中扮演著重要的角色。在C#中,每個(gè)Windows窗體和控件都是對(duì)象,都是類的實(shí)例。 窗體是可視化程序設(shè)計(jì)的基礎(chǔ)界面,是其他對(duì)象的載體和容器。 控件是添加到窗體對(duì)象上的對(duì)象,每個(gè)控件都有自己的屬性、方法和事件以完成特定的功能。 Windows應(yīng)用程序設(shè)計(jì)還體現(xiàn)了另外一種思維,即對(duì)事件的處理。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,3,本章將介紹建立Windows應(yīng)用程序、使用Windows Forms常
2、用控件、菜單和多文檔界面設(shè)計(jì)等。 同時(shí)向大家展示用Windows窗體來(lái)編寫程序的特點(diǎn)以及技巧。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,4,9.1 Windows應(yīng)用程序的結(jié)構(gòu),VS.NET集成開(kāi)發(fā)環(huán)境是基于.NET Framework構(gòu)建的,該框架提供了一個(gè)有條理的、面向?qū)ο蟮?、可擴(kuò)展的類集,它使用戶得以開(kāi)發(fā)豐富的Windows應(yīng)用程序。 通過(guò)Windows“窗體設(shè)計(jì)器”進(jìn)行設(shè)計(jì)窗體,用戶就可以創(chuàng)建Windows應(yīng)用程序和客戶機(jī)/服務(wù)器應(yīng)用程序。用戶可對(duì)窗體設(shè)定某些特性并在其上添加控件,然后編寫代碼以增加控件和窗體的功能。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,5,9.1 Window
3、s應(yīng)用程序的結(jié)構(gòu),VS.NET提供了很多工具可以使應(yīng)用程序的開(kāi)發(fā)快捷、可靠。這些工具包括: Windows窗體可視化設(shè)計(jì)器。 識(shí)別代碼編輯器。 集成的編譯和調(diào)試。 項(xiàng)目管理工具。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,6,9.1 Windows應(yīng)用程序的結(jié)構(gòu),典型的Windows應(yīng)用程序通常包括窗體(Forms)、控件(Controls)和相應(yīng)的事件(Events)。 下面通過(guò)C#設(shè)計(jì)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器,要求能夠?qū)崿F(xiàn)基本的加、減、乘、除功能,并以這個(gè)“計(jì)算器”為例,來(lái)了解和掌握Windows應(yīng)用程序的一般開(kāi)發(fā)過(guò)程。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,7,9.1.1 計(jì)算器窗體,W
4、indows窗體就是創(chuàng)立Windows應(yīng)用程序的框架。 在VS.NET中創(chuàng)建Windows應(yīng)用程序的第一步就是建立這個(gè)框架。操作步驟如下: (1)運(yùn)行VS.NET,在【起始頁(yè)】上單擊【新建項(xiàng)目】按鈕,打開(kāi)“新建項(xiàng)目”對(duì)話框,如圖9-1所示。在“項(xiàng)目類型”列表框中指定項(xiàng)目的類型為“Viusal C#”,在“模板”列表框中選擇“Windows應(yīng)用程序”模板,在“名稱”文本框中輸入Calculator,在“位置”下拉列表中選定保存項(xiàng)目的位置。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,8,9.1.1 計(jì)算器窗體,(2)單擊“確定”按鈕后就進(jìn)入VS.NET的主界面,如圖9-2所示。,從圖9-2可以看出
5、,當(dāng)選擇“Windows應(yīng)用程序”作為應(yīng)用程序的模板后,系統(tǒng)會(huì)自動(dòng)為用戶生成一個(gè)空白窗體,一般名為Form1。 該窗體就是應(yīng)用程序運(yùn)行時(shí)顯示給用戶的操作界面,下一步就是向窗體中添加各種控件。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,9,9.1.2 計(jì)算器控件,控件表示用戶和程序之間的圖形化連接??丶梢蕴峁┗蛱幚頂?shù)據(jù)、接受用戶輸入、對(duì)事件做出響應(yīng)或執(zhí)行連接用戶和應(yīng)用程序的其他功能。 因?yàn)榭丶举|(zhì)上是具有圖形接口的組件,所以它能通過(guò)組件所提供的功能并與用戶交互。 窗體中的控件有很多,“工具箱”中的“Windows窗體”里包含了所有Windows的標(biāo)準(zhǔn)控件,用戶還可以根據(jù)需要自己定義控件。通過(guò)在
6、“屬性”窗口中改變控件的屬性可以改變的外觀和特性。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,10,9.1.2 計(jì)算器控件,本例中需要用到如下所列的控件: (1)按鈕:16個(gè)。 10個(gè)數(shù)字按鈕分別用于表示09; 4個(gè)運(yùn)算符按鈕表示“+”、“-”、“*”、“”; 1個(gè)“計(jì)算”按鈕用于實(shí)施計(jì)算操作; 1個(gè)“清空”按鈕用于清除上次計(jì)算結(jié)果。 (2)標(biāo)簽:1個(gè)。 用于標(biāo)示計(jì)算結(jié)果所在的文本框。 (3)文本框:1個(gè)。 用于顯示計(jì)算結(jié)果。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,11,9.1.2 計(jì)算器控件,具體添加控件步驟如下: 首先向窗體中添加按鈕(Button)。 具體操作為: 在工具箱中單擊Bu
7、tton,然后移動(dòng)鼠標(biāo)指針到窗體中的預(yù)定位置,按下左鍵拖動(dòng)鼠標(biāo),劃出一個(gè)方框,釋放鼠標(biāo)左鍵后,一個(gè)按鈕就被添加到剛才方框的位置了。調(diào)整好大小和位置后單擊選中該按鈕,在“屬性”窗口中可以看到該控件名為Button1,將該按鈕的Text屬性設(shè)置為“1”。 繼續(xù)在窗體中添加其余15個(gè)按鈕,并分別設(shè)置好它們的屬性。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,12,9.1.2 計(jì)算器控件,界面設(shè)計(jì)已經(jīng)完成了,接下來(lái)的事情就是為各個(gè)控件添加相應(yīng)的事件代碼了。,按照同樣的方法在窗體中添加一個(gè)標(biāo)簽(Label),設(shè)置其Text屬性為“結(jié)果”,再添加一個(gè)文本框(TextBox),并設(shè)置其Text屬性為空。 最后
8、,一個(gè)簡(jiǎn)單的計(jì)算器的界面就完成了,如圖9-3所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,13,9.1.3 計(jì)算器事件,在C#中,基于Windows應(yīng)用程序設(shè)計(jì)方法是事件驅(qū)動(dòng)的。 事件驅(qū)動(dòng)不是由程序的順序來(lái)控制的,而是由事件的發(fā)生來(lái)控制的。事件驅(qū)動(dòng)程序設(shè)計(jì)是圍繞著消息的產(chǎn)生與處理而展開(kāi)的,消息就是關(guān)于發(fā)生的事件的信息。 Windows程序員的工作就是對(duì)所開(kāi)發(fā)的應(yīng)用程序所要發(fā)出或者接收的消息進(jìn)行排序和管理。事件驅(qū)動(dòng)程序方法提供了許多便利,對(duì)于那些需要大范圍用戶干預(yù)的應(yīng)用程序來(lái)說(shuō),更是很有用處。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,14,9.1.3 計(jì)算器事件,在“窗體設(shè)計(jì)器”中看到的是
9、窗體及其中的控件,而要為控件添加事件處理程序就必須先切換到代碼編輯器狀態(tài)。 切換到代碼編輯器有以下幾種方法: (1)雙擊窗體或者某控件。 (2)在解決方案資源管理器中右鍵單擊Form1.cs,從快捷菜單中選擇“查看代碼”命令。如果選擇“視圖設(shè)計(jì)器”則可以回到“窗體設(shè)計(jì)器”中。 (3)當(dāng)?shù)谝淮吻袚Q到代碼編輯器之后,在窗體標(biāo)題“Form1.cs設(shè)計(jì)”的左邊會(huì)自動(dòng)出現(xiàn)一個(gè)新的標(biāo)題:Form1.cs,單擊該標(biāo)題就可以切換到代碼編輯器。反之,如果單擊“Form1.cs設(shè)計(jì)”則會(huì)切換到“窗體設(shè)計(jì)器”。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,15,9.1.3 計(jì)算器事件,下面分析一下計(jì)算器中各個(gè)控件到底
10、應(yīng)該添加什么樣的代碼。 對(duì)于計(jì)算器來(lái)說(shuō),當(dāng)單擊某個(gè)數(shù)字鍵后,結(jié)果顯示區(qū)內(nèi)應(yīng)顯示該鍵上的數(shù)字。 因此,可以雙擊按鈕“1”,切換到代碼編輯器,此時(shí)光標(biāo)就停留在該按鈕所對(duì)應(yīng)的代碼處,輸入下列代碼: private void btn1_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text += btn.Text; ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,16,9.1.3 計(jì)算器事件,繼續(xù)給其他數(shù)字按鈕添加同樣的代碼。 然后給4個(gè)運(yùn)算符按鈕添加下列代碼: private void btnAdd_Cli
11、ck(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text+ +btn.Text+ ;/空格用于分隔數(shù)字各運(yùn)算符 ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,17,9.1.3 計(jì)算器事件,private void btnSub_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text + + btn.Text + ;/空格用于分隔數(shù)字各運(yùn)算符 pri
12、vate void btnMul_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text + + btn.Text + ;/空格用于分隔數(shù)字各運(yùn)算符 ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,18,9.1.3 計(jì)算器事件,private void btnDiv_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text + + btn.Te
13、xt + ;/空格用于分隔數(shù)字各運(yùn)算符 接下來(lái)給“清空”按鈕添加如下代碼: private void btnClear_Click(object sender, EventArgs e) textBox1.Text = ; ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,19,9.1.3 計(jì)算器事件,最后給“計(jì)算”按鈕添加下列代碼: private void btnCalculate_Click(object sender, EventArgs e) Single r; /用于保存計(jì)算結(jié)果 string t = textBox1.Text;/t用于保存文本框中的算術(shù)表達(dá)式 int space =
14、t.IndexOf( );/用于搜索空格位置 string s1 = t.Substring(0, space);/s1用于保存第一個(gè)運(yùn)算數(shù) char op = Convert.ToChar(t.Substring(space + 1, 1);/op用于保存運(yùn)算符 string s2 = t.Substring(space + 3);/s2用于保存第二個(gè)運(yùn)算數(shù) Single arg1 = Convert.ToSingle(s1);/將運(yùn)算數(shù)從string轉(zhuǎn)換為Single Single arg2 = Convert.ToSingle(s2);,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,20,9
15、.1.3 計(jì)算器事件,switch (op) case +: r = arg1 + arg2; break; case -: r = arg1 - arg2; break; case *: r = arg1 * arg2; break;,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,21,9.1.3 計(jì)算器事件,case /: if (arg2 = 0) throw new ApplicationException(); else r = arg1 / arg2; break; break; default: throw new ApplicationException(); ,2020/10/7
16、,C#程序設(shè)計(jì)實(shí)用教程,22,9.1.3 計(jì)算器事件,/將計(jì)算結(jié)果顯示在文本框中 textBox1.Text = r.ToString(); 現(xiàn)在,所有的工作都完成了。在“調(diào)試”菜單中選擇“啟動(dòng)”命令或者“開(kāi)始執(zhí)行(不調(diào)試)”命令運(yùn)行該應(yīng)用程序,計(jì)算器可以工作了。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,23,9.2 Windows窗體,通過(guò)“計(jì)算器”這個(gè)例子,已初步了解了Windows應(yīng)用程序的結(jié)構(gòu)。 下面具體介紹Windows應(yīng)用程序的設(shè)計(jì)和開(kāi)發(fā)。 一個(gè)應(yīng)用程序除了需要實(shí)現(xiàn)應(yīng)有的功能外,還必須具有良好的用戶界面。在C#中,Windows應(yīng)用程序的界面是以窗體(Form)為基礎(chǔ)的,窗體是W
17、indows應(yīng)用程序的基本單位,用來(lái)向用戶展示信息和接受用戶的輸入。 窗體可以是標(biāo)準(zhǔn)窗口、多文檔界面(MDI)窗口、對(duì)話框的顯示界面。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,24,9.2 Windows窗體,窗體就好像一個(gè)容器,其他界面元素都可以放置在窗體中。 C#中以類Form來(lái)封裝窗體,一般來(lái)說(shuō),用戶設(shè)計(jì)的窗體都是類Form的派生類,用戶窗體中添加其他界面元素的操作實(shí)際上就是向派生類中添加私有成員。 當(dāng)新建一個(gè)Windows應(yīng)用程序項(xiàng)目時(shí),C#就會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)名為Form1的Windows窗體。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,25,9.2 Windows窗體,Windo
18、ws窗體由以下4部分組成: 標(biāo)題欄 控制按鈕 邊界 窗口區(qū),2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,26,9.2.1 Windows窗體的基本屬性,Windows窗體的屬性可以決定窗體的外觀和行為,其中常用的屬性有:名稱(Name)屬性、標(biāo)題(Text)屬性、控制菜單屬性和影響窗體外觀的屬性。 1. 窗體的名稱屬性(Name) Name用于設(shè)置窗體的名稱,該屬性值作為窗體的標(biāo)志,用于在程序中引用窗體。 在初始新建一個(gè)Windows應(yīng)用程序項(xiàng)目時(shí),自動(dòng)創(chuàng)建一個(gè)窗體,該窗體的名稱被自動(dòng)命名為Form1;添加第2個(gè)窗體時(shí),其名稱被自動(dòng)命名為Form2,依次類推。 通常而言,在設(shè)計(jì)Windows窗體
19、時(shí),可給其Name屬性設(shè)置一個(gè)有實(shí)際含義的名字。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,27,9.2.1 Windows窗體的基本屬性,2. 窗體的標(biāo)題屬性(Text) Text屬性用于設(shè)置窗體標(biāo)題欄顯示的內(nèi)容,它的值是一個(gè)字符串。 通常,標(biāo)題欄顯示的內(nèi)容應(yīng)能概括地說(shuō)明窗體的內(nèi)容或作用。 例如,對(duì)于一個(gè)登錄窗體,其欄題欄設(shè)置為“歡迎登錄!”。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,28,9.2.1 Windows窗體的基本屬性,3. 窗體的控制菜單屬性 在C#應(yīng)用程序中的Windows窗體,一般都顯示控制菜單,以方便用戶的操作。 (1) ControlBox屬性:該屬性用來(lái)設(shè)置窗體上是
20、否有控制菜單。其默認(rèn)值True,窗體上顯示控制菜單。若將該屬性設(shè)置為False,則窗體上不顯示控制菜單,如圖9-4所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,29,9.2.1 Windows窗體的基本屬性,(2) MaximizeBox屬性:用于設(shè)置窗體上的最大化按鈕。其默認(rèn)值True,窗體上顯示最大化按鈕。若將該屬性設(shè)置為False,則窗體上不顯示最大化按鈕。 (3) MinimizeBox屬性:用于設(shè)置窗體上的最小化按鈕。其默認(rèn)值True,窗體上顯示最小化按鈕。若將該屬性設(shè)置為False,則窗體上不顯示最小化按鈕。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,30,9.2.1 Wind
21、ows窗體的基本屬性,4. 設(shè)置窗體外觀的屬性 (1) FormBorderStyle屬性:用于控制窗體邊界的類型。它有7個(gè)可選值,可選值說(shuō)明如表9-1所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,31,9.2.1 Windows窗體的基本屬性,(2) Size屬性:用來(lái)設(shè)置窗體的大小。 (3) Location屬性:設(shè)置窗體在屏幕上的位置,即設(shè)置窗體左上角的坐標(biāo)值。 (4) BackColor屬性:用于設(shè)置窗體的背景顏色,可以從彈出的調(diào)色板中選擇。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,32,9.2.1 Windows窗體的基本屬性,(5) BackgroundImage屬性:用于設(shè)
22、置窗體的背景圖像。 (6) Opacity屬性:該屬性用來(lái)設(shè)置窗體的透明度。 5. 設(shè)置窗體可見(jiàn)性的屬性 窗體的可見(jiàn)性由Visible屬性來(lái)控制。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,33,9.2.2 創(chuàng)建窗體,通常,在開(kāi)發(fā)項(xiàng)目時(shí),一個(gè)窗體往往不能滿足,通常需要用到多個(gè)窗體。 C#提供了多窗體處理能力,在一個(gè)項(xiàng)目中可創(chuàng)建多個(gè)窗體,添加新窗體的方式如下: (1) 選擇項(xiàng)目菜單下的“添加Windows窗體”命令,打開(kāi)“添加新項(xiàng)”對(duì)話框,如圖9-5所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,34,9.2.2 創(chuàng)建窗體,(2) 在“添加新項(xiàng)”對(duì)話框的模板框內(nèi),選擇“Windows窗體”模板
23、,然后,單擊“打開(kāi)”按鈕,就添加一個(gè)新的Windows窗體。完成添加窗體后,在解決方案資源管理器窗口中雙擊對(duì)應(yīng)的窗體,則在Windows窗體設(shè)計(jì)器中,可顯示該窗體。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,35,9.2.3 設(shè)置啟動(dòng)窗體屬性,當(dāng)在應(yīng)用程序中添加了多個(gè)窗體后,默認(rèn)情況下,應(yīng)用程序中的第一個(gè)窗體被自動(dòng)指定為啟動(dòng)窗體。在應(yīng)用程序開(kāi)始運(yùn)行時(shí),此窗體就會(huì)首先顯示出來(lái)。 如果想實(shí)現(xiàn)在應(yīng)用程序啟動(dòng)時(shí),顯示別的窗體,那么就要設(shè)置啟動(dòng)窗體。如何實(shí)現(xiàn)設(shè)置啟動(dòng)窗體,請(qǐng)看例9-1。 【例9-1】C#設(shè)置啟動(dòng)窗體。 步驟如下: (1) 在一個(gè)項(xiàng)目中,添加兩個(gè)窗體。,2020/10/7,C#程序設(shè)計(jì)實(shí)用
24、教程,36,9.2.3 設(shè)置啟動(dòng)窗體屬性,(2) 在解決方案中,有一個(gè)Program.cs文件,雙擊此文件,此時(shí)該文件的代碼如下所示: static class Program static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,37,9.2.3 設(shè)置啟動(dòng)窗體屬性,(3) 要實(shí)現(xiàn)先啟動(dòng)Form2,只需在Program.cs文件中修改此
25、行“Application.Run(new Form1();”代碼為“Application.Run(new Form2();”,即可。 (4) 運(yùn)行程序,先啟動(dòng)的窗體為Form2。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,38,9.2.4窗體的顯示與隱藏,1. 窗體的顯示 如果要在一個(gè)窗體中通過(guò)按鈕打開(kāi)另一個(gè)窗體,就必須通過(guò)調(diào)用Show()方法顯示窗體。語(yǔ)法如下: public void Show(); 【例9-2】 在Form1窗體中添加一個(gè)Button按鈕,在按鈕的Click事件中調(diào)用Show(),打開(kāi)Form2窗體。代碼如下: private void button1_Click(o
26、bject sender, EventArgs e) Form2 frm2 = new Form2(); /實(shí)例化Form2 frm2.Show(); /調(diào)用Show方法顯示Form2窗體 ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,39,9.2.4窗體的顯示與隱藏,2. 窗體的隱藏 通過(guò)調(diào)用Hide()方法隱藏窗體。語(yǔ)法如下: public void Hide(); 【例9-3】 通過(guò)登錄窗體登錄系統(tǒng),輸入用戶名和密碼后,單擊“登錄”按鈕,隱藏登錄窗體,顯示主窗體。關(guān)鍵代碼如下: this.Hide(); /調(diào)用Hide方法隱藏當(dāng)前窗體 frmMain frm = new frmMain (
27、); /實(shí)例化frmMain frm.Show(); /調(diào)用Show方法顯示frmMain窗體,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,40,9.2.5窗體的事件,Windows是事件驅(qū)動(dòng)的操作系統(tǒng),對(duì)Form類的任何交互都是基于事件來(lái)實(shí)現(xiàn)的。 Form類提供了大量的事件用于響應(yīng)對(duì)窗體執(zhí)行的各種操作。 窗體設(shè)計(jì)人員往住關(guān)心窗體的加載和關(guān)閉,通常在加載時(shí)進(jìn)行界面和數(shù)據(jù)的初始化。在關(guān)閉前進(jìn)行資源的釋放等清理操作,也可以取消關(guān)閉操作。 下面詳細(xì)介紹窗體的Click、Load和FormClosing事件。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,41,9.2.5窗體的事件,1. Click(單擊)
28、事件 當(dāng)單擊窗體時(shí),將會(huì)觸發(fā)窗體的Click事件。語(yǔ)法如下: public event EventHandler Click 【例9-4】 在窗體的Click事件中編寫代碼,實(shí)現(xiàn)當(dāng)單擊窗體時(shí),彈出提示框。代碼如下: private void Form1_Click(object sender, EventArgs e) MessageBox.Show(已經(jīng)單擊了窗體!);/彈出提示框 ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,42,9.2.5窗體的事件,程序的運(yùn)行如圖9-6所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,43,9.2.5窗體的事件,2. Load(加載)事件 當(dāng)?shù)谝淮沃苯踊?/p>
29、間接調(diào)用Form.Show方法來(lái)顯示窗體時(shí),窗體就會(huì)進(jìn)行且只進(jìn)行一次加載,并且在必需的加載操作完成后會(huì)引發(fā)Load事件。 通常,在Load事件響應(yīng)函數(shù)中執(zhí)行一些初始化操作。語(yǔ)法如下: public event EventHandler Load,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,44,9.2.5窗體的事件,【例9-5】在下述程序,在窗體的Load事件中對(duì)窗體的大小、標(biāo)題、顏 色等屬性進(jìn)行了設(shè)置。 private void Form1_Load(object sender, EventArgs e) this.Width = 1000; this.Height = 500; this.F
30、oreColor = Color.Cyan; this.BackColor = Color.Red; this.Text = Welcome you!; ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,45,9.2.5窗體的事件,程序的運(yùn)行如圖9-7所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,46,9.2.5窗體的事件,3. FormClosing(關(guān)閉)事件 Form類的FormClosing事件是在窗體關(guān)閉時(shí)引發(fā)的事件,直接或間接調(diào)用Form.Close()方法都會(huì)引發(fā)事件。 在FormClosing事件中,通常進(jìn)行關(guān)閉前的確認(rèn)和資源釋放操作。語(yǔ)法如下: public event For
31、mClosingEventHandler FormClosing 【例9-6】創(chuàng)建一個(gè)Windows應(yīng)用程序,實(shí)現(xiàn)當(dāng)關(guān)閉窗體之前,彈出提示框,詢問(wèn)是否關(guān)閉當(dāng)前窗體,單擊“是”按鈕,關(guān)閉窗體,代碼如下。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,47,9.2.5窗體的事件,private void Form1_FormClosing(object sender, FormClosingEventArgs e) DialogResult dr = MessageBox.Show(是否關(guān)閉窗體, 提示, MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
32、; if (dr = DialogResult.Yes) /使用if語(yǔ)句判定是否單擊“是”按鈕 e.Cancel = false; /如果單擊“是”按鈕則關(guān)閉窗體 else e.Cancel = true;/否則,不執(zhí)行操作 ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,48,9.2.5窗體的事件,程序的運(yùn)行如圖9-8所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,49,9.3 窗體控件概述,控件是包含在窗體上的對(duì)象,是構(gòu)成用戶界面的基本元素,也 是C#可視化編程的重要工具。 使用控件可使程序的設(shè)計(jì)簡(jiǎn)化 避 免大量重復(fù)性工作,簡(jiǎn)化設(shè)計(jì)過(guò)程,有效地提高設(shè)計(jì)效率。 對(duì)于一個(gè)程序開(kāi)發(fā)人員而言,必須掌
33、握每類控件的功能、用途,并掌握其常用的屬性、事件和方法。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,50,9.3 窗體控件概述,在VS2005中,工具箱中包含了建立應(yīng)用程序的各種控件。 工具箱分為Windows窗體、公共控件、容器、菜單和工具欄、數(shù)據(jù)、組件、打印、對(duì)話框等部分,常用的Windows窗體控件放在“Windows窗體”選項(xiàng)卡下。 工具箱中有數(shù)十個(gè)常用的Windows窗體控件,它們以圖標(biāo)的方式顯示在工具箱中,其名稱顯示于圖標(biāo)的右側(cè)。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,51,9.3 窗體控件概述,在介紹具體控件之前,首先在此探討一下各個(gè)控件共有的屬性、事件和方法。 在C#中,所
34、有的窗體控件,比如標(biāo)簽控件、文本框控件、按鈕控件等全部都是繼承于:System.Windows.Forms.Control。 作為各種窗體控件的基類,Control類實(shí)現(xiàn)了所有窗體交互控件的基本功能。 Control類的屬性、方法和事件是所有窗體控件所公有的,而且其中很多是在編程中經(jīng)常會(huì)遇到的。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,52,9.3 窗體控件概述,(1)Control類的屬性 Control類的屬性描述了一個(gè)窗體控件的所有公共屬性,可以在屬性(Properties)窗口中查看或修改窗體控件的屬性。 常用的屬性如下: Name屬性 每一個(gè)控件都有一個(gè)Name(名字)屬性,在應(yīng)用
35、程序中,可通過(guò)此屬性來(lái)引用這個(gè)控件。 C#會(huì)給每個(gè)新添加的控件指定一個(gè)默認(rèn)名。在應(yīng)用程序設(shè)計(jì)中,可根據(jù)需要將控件的默認(rèn)名字改成更有實(shí)際代表意義的名字。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,53,9.3 窗體控件概述,Text屬性 在C#中,每一個(gè)控件對(duì)象都有Text屬性。Text屬性在很多控件中都有重要的意義和作用。 例如,在標(biāo)簽控件中顯示的文字、在文本框中用戶輸入的文字、組合框和窗體中的標(biāo) 題 等都是用控件的Text進(jìn)行設(shè)定的。 對(duì)于Text屬性的設(shè)置過(guò)程及設(shè)置結(jié)果如圖9-9、9-10所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,54,9.3 窗體控件概述,Anchor屬性 Anc
36、hor的意思是“錨”,那么Anchor屬性是用來(lái)確定此控件與其容器控件的固定關(guān)系的。 在此,所謂容器控件是指什么呢?顧名思義,容器控件就是像一般的容器一樣可以存放別的控件的控件!例如,窗體控件中會(huì)包含很多的控件,像標(biāo)簽控件、文本框等。這時(shí),稱包含控件的控件為容器控件或父控件,而里面的控件為子控件。顯然,這必然涉及到一個(gè)問(wèn)題,即子控件與父控件的位置關(guān)系問(wèn)題。即當(dāng)父控件的位置、大小變化時(shí),子控件按照什么樣的原則改變其位置、大小。Anchor屬性就用于設(shè)置此原則。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,55,9.3 窗體控件概述,對(duì)于Anchor屬性,可以設(shè)定Top、Bottom、Right、L
37、eft中任意的幾種,設(shè)置的方法非常直觀,如圖9-11所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,56,9.3 窗體控件概述,圖9-11中選中變黑的方位即為設(shè)定的控件方位,圖中所示的方位為Top、Left、Bottom。此時(shí),如果容器控件變化,子控件將保證其上邊緣與容器上邊的距離、左邊緣與容器左邊的距離,底邊與容器底邊的距離。其運(yùn)行效果如圖9-12所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,57,9.3 窗體控件概述,Dock屬性 Dock屬性規(guī)定了子控件與父控件的邊緣依賴關(guān)系。Dock的效果,如圖9-13所示。,Dock的值有6種,分別是Top、Bottom、Left、Right、
38、Fill,最后還有默認(rèn)值None。一旦Dock值被設(shè)定,子控件就會(huì)發(fā)生變化與父控件選定的邊緣相融在一起。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,58,9.3 窗體控件概述,(2)Control類的方法 可以調(diào)用Control類的方法來(lái)獲得控件的一些信息,或者設(shè)置控件的屬性值及行為狀態(tài)。 例如:Focus方法可設(shè)置此控件獲得的焦點(diǎn);Refresh方法可重畫控件;Select方法可激活控件;Show方法可顯示控件等。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,59,9.3 窗體控件概述,(3)Control類的事件 在C#中,當(dāng)用戶進(jìn)行某一項(xiàng)操作時(shí),會(huì)引發(fā)某個(gè)事件的發(fā)生,此時(shí)就會(huì)調(diào)用事件處理程
39、序代碼,實(shí)現(xiàn)對(duì)程序的控制。 事件驅(qū)動(dòng)實(shí)現(xiàn)是基于窗體的消息傳遞和消息循環(huán)機(jī)制的。在C#中,所有的機(jī)制都被封裝在控件之中,極大方便了編寫事件的驅(qū)動(dòng)程序。如果希望能夠更加深入地操作,或定義自己的事件,就需要聯(lián)合使用委托(Delegate)和事件(Event),可以靈活地添加、修改事件的響應(yīng),并自定義事件的處理方法。 例如,Control類的可響應(yīng)的事件有:?jiǎn)螕魰r(shí)發(fā)生的Click事件;雙擊時(shí)發(fā)生的DoubleClick事件;取得焦點(diǎn)時(shí)發(fā)生的GetFocus事件;鼠標(biāo)移動(dòng)時(shí)發(fā)生的MouseMove事件等。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,60,9.4 常用控件,窗體是由一個(gè)個(gè)控件構(gòu)成的,因此熟
40、悉控件是進(jìn)行合理、有效的程序開(kāi)發(fā)的重要前提。 本節(jié)內(nèi)容將針對(duì)Windows窗體應(yīng)用程序中常見(jiàn)的控件進(jìn)行詳細(xì)介紹。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,61,9.4.1 按鈕控件,按鈕(Button)是用戶與應(yīng)用程序交互的最常用的工具。它用于接收用戶的操作信息,去執(zhí)行預(yù)先規(guī)定的命令,觸發(fā)相應(yīng)的事件過(guò)程,以實(shí)現(xiàn)指定的功能。 1. 常用屬性 (1)Text屬性 該屬性用于設(shè)定按鈕上顯示的文本。該屬性也可為按鈕創(chuàng)建快捷方式,其方法是在作為快捷鍵的字母前加一個(gè)“ /第一次加載時(shí),進(jìn)行計(jì)數(shù)器和lblResult的初始化 private void Form1_Load(object sender, E
41、ventArgs e) this.nCounter = 50; this.ShowCounter(); /進(jìn)行遞增操作,并提示新值 private void btnInc_Click(object sender, EventArgs e) this.nCounter+; this.ShowCounter(); ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,66,9.4.1 按鈕控件,/進(jìn)行遞減操作,并提示新值 private void btnDes_Click(object sender, EventArgs e) this.nCounter-; this.ShowCounter(); /通過(guò)M
42、essageBox提示當(dāng)前的值 private void btnMsg_Click(object sender, EventArgs e) string strMsg = 當(dāng)前計(jì)數(shù)器 + this.nCounter.ToString(D8); MessageBox.Show(strMsg, 提示);,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,67,9.4.1 按鈕控件,/顯示計(jì)數(shù)器值到Label控件lblResult private void ShowCounter() string strMsg = this.nCounter.ToString(D8); this.lblResult.Tex
43、t = strMsg; ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,68,9.4.1 按鈕控件,程序運(yùn)行結(jié)果如圖9-15所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,69,9.4.2標(biāo)簽控件,標(biāo)簽(Label)主要用來(lái)顯示文本。通常用標(biāo)簽來(lái)為其他控件顯示說(shuō)明信息、窗體的提示信息,或者用來(lái)顯示處理結(jié)果等信息。但是,標(biāo)簽顯示的文本不能被直接編輯。 除了顯示文本外,標(biāo)簽還可使用Image屬性顯示圖像,或使用ImageIndex和ImageList屬性組合顯示圖像。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,70,9.4.2標(biāo)簽控件,1. 常用屬性 (1)Text屬性 該屬性用于設(shè)定標(biāo)簽顯示的文本
44、,可通過(guò)TextAlign屬性設(shè)置文本的對(duì)齊方式。 (2)BorderStyle屬性 該屬性用于設(shè)定標(biāo)簽的邊框形式,共有3個(gè)設(shè)定值,分別是None、FixedSingle、Fixed3D。該屬性的默認(rèn)值為None。 (3)BackColor屬性 用于設(shè)定標(biāo)簽的背景色。 (4)ForeColor屬性 用于設(shè)定標(biāo)簽中文本的顏色。 (5)Font屬性 用于設(shè)定標(biāo)簽中文本的字體、大小、粗體、斜體、刪除線等。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,71,9.4.2標(biāo)簽控件,(6)Image屬性 用于設(shè)定標(biāo)簽的背景圖片,可通過(guò)ImageAlign屬性設(shè)置圖片的對(duì)齊方式。 (7)Enable屬性 用于設(shè)
45、定控件是否可用,不可用,則用灰色表示。 (8)Visible屬性 用于設(shè)定控件是否可見(jiàn),不可見(jiàn),則隱藏。 (9)AutoSize屬性 用于設(shè)定控件是否根據(jù)文本自動(dòng)調(diào)整,設(shè)置為true表示自動(dòng)調(diào)整。 注意:上述的屬性中,前6項(xiàng)為外觀屬性;而后3項(xiàng)為行為屬性。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,72,9.4.2標(biāo)簽控件,2.響應(yīng)的事件 標(biāo)簽控件常用的事件有:Click事件和DoubleClick事件。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,73,9.4.2標(biāo)簽控件,【例9-3】標(biāo)簽控件的運(yùn)用。對(duì)窗體上的3個(gè)標(biāo)簽控件的參數(shù)進(jìn)行設(shè)置,用來(lái)顯示文本。 程序代碼如下: private void
46、 Form1_Load(object sender, EventArgs e) /label1參數(shù)設(shè)置,默認(rèn)字體為宋體9號(hào)、前景色為黑色 this.label1.AutoSize = true; this.label1.BackColor = System.Drawing.Color.White; this.label1.Text = 宋體9號(hào)白底黑字;,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,74,9.4.2標(biāo)簽控件,/label2參數(shù)設(shè)置,默認(rèn)字體為宋體9號(hào)、前景色為黑色 this.label2.AutoSize = true; this.label2.BackColor = Syste
47、m.Drawing.Color.Black; this.label2.Font=new System.Drawing.Font(宋體,10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point,(byte)(134); this.label2.ForeColor=System.Drawing.Color.White; this.label2.Text = 宋體10號(hào)黑底白字“;,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,75,9.4.2標(biāo)簽控件,/label3參數(shù)設(shè)置 this.label3.AutoSi
48、ze = true; this.label3.BackColor = System.Drawing.Color.Blue; this.label3.Font = new System.Drawing.Font(楷體_GB2312, 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, (byte)(134); this.label3.ForeColor = System.Drawing.Color.Red; this.label3.Text = 楷體14號(hào)藍(lán)底紅字; ,2020/10/7,C#程
49、序設(shè)計(jì)實(shí)用教程,76,9.4.2標(biāo)簽控件,程序運(yùn)行結(jié)果如圖9-16所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,77,9.4.3 文本框控件,在C#中,文本框(TextBox)是最常用的和最簡(jiǎn)單的文本顯示和輸入控件。文本框有兩種用途,一是可以用來(lái)輸出或顯示文本信息;二是可以接受從鍵盤輸入的信息。 1. 常用屬性 (1)Text屬性 該屬性用于設(shè)定文本框顯示的文本,可通過(guò)TextAlign屬性設(shè)置文本的對(duì)齊方式。 (2)BackColor屬性 用于設(shè)定文本框的背景色。 (3)ForeColor屬性 用于設(shè)定文本框中文本的顏色。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,78,9.4.3 文本
50、框控件,(4)Font屬性 用于設(shè)定文本框中文本的字體、大小、粗體、斜體、刪除線等。 (5)PasswordChar屬性 文本框控件以密碼輸入方式使用,輸入字母用該屬性指定字符屏蔽。 (6)Enable屬性 用于設(shè)定文本框控件是否可用,不可用,則用灰色表示。 (7)Visible屬性 用于設(shè)定文本框控件是否可見(jiàn),不可見(jiàn),則隱藏。 (8)ReadOnly屬性 用于設(shè)定文本框控件是否只讀。 (9)MultiLine屬性 用于設(shè)定文本框控件是否包多行文本。 注意:上述的屬性中,前5項(xiàng)為外觀屬性;而后4項(xiàng)為行為屬性。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,79,9.4.3 文本框控件,2.常用的方
51、法 (1)Clear方法 用于清除文本框中已有的文本。 (2)AppendText方法 用于文本框最后追加文本。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,80,9.4.3 文本框控件,3.常用的事件 在文本框控件所能響應(yīng)的事件中,TextChanged、Enter和Leave是常用的事件。 (1)TextChanged事件 當(dāng)文本框的文本內(nèi)容發(fā)生變化時(shí),觸發(fā)該事件。當(dāng)向文本框輸入信息時(shí),每輸入一個(gè)字符,就會(huì)引發(fā)一次TextChanged事件。 (2)Enter事件 當(dāng)文本框獲得焦點(diǎn)時(shí),就會(huì)引發(fā)的事件。 (3)Leave事件 當(dāng)文本框失去焦點(diǎn)時(shí),就會(huì)引發(fā)的事件。,2020/10/7,C#程序設(shè)
52、計(jì)實(shí)用教程,81,9.4.3 文本框控件,【例9-9】文本框控件的運(yùn)用。 實(shí)現(xiàn)步驟如下: (1)為窗體Form1添加2個(gè)TextBox控件:tbInput和tbHint,前者可編輯單行文本,用來(lái)獲取用戶輸入;后者用于顯示數(shù)據(jù),應(yīng)設(shè)置為只讀多行文本。同時(shí),再添加1個(gè)Label控件lblCopy,用來(lái)顯示輸入文本框中數(shù)據(jù)。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,82,9.4.3 文本框控件,(2)在此例中,通過(guò)程序代碼設(shè)置相應(yīng)的控件的屬性。主要程序代碼如下: private void Form1_Load(object sender, EventArgs e) /設(shè)置2個(gè)文本框的屬性 this
53、.tbInput.ForeColor = Color.Blue; this.tbHint.BackColor = Color.White; this.tbHint.ForeColor = Color.Green; this.tbHint.ReadOnly = true; ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,83,9.4.3 文本框控件,private void tbInput_Enter(object sender, EventArgs e) /光標(biāo)進(jìn)入清除原有文本 this.tbInput.Clear(); private void tbInput_Leave(object send
54、er, EventArgs e) /焦點(diǎn)退出,將文本添加到tbHint新的一行 this.tbHint.AppendText(this.tbInput.Text + Environment.NewLine); ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,84,9.4.3 文本框控件,private void tbInput_TextChanged(object sender, EventArgs e) /將當(dāng)前tbInput中文本內(nèi)容同步顯示到lblCopy中 this.lblCopy.Text = this.tbInput.Text; 注意:在tbInput_Leave事件中將編輯好的文本通
55、過(guò)方法TextBox.AppendText()追加tbHint中;在tbInput_TextChanged事件中將tbInput中最新的文本同步顯示到lbCopy控件上。 程序運(yùn)行結(jié)果如圖9-17所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,85,9.4.4 單選按鈕控件,單選按鈕(RadioButton)控件為用戶提供由兩個(gè)或多個(gè)互斥選項(xiàng)組成的選項(xiàng)集。當(dāng)用戶選中某單選項(xiàng)按鈕時(shí),同一組中的其他單選項(xiàng)按鈕不能同時(shí)選定,該控件以圓圈內(nèi)加點(diǎn)的方式表示選中。 單選按鈕用來(lái)讓用戶在一組相關(guān)的選項(xiàng)中選擇一項(xiàng),因此單選按鈕控件總是成組出現(xiàn)。 直接添加到一個(gè)窗體中的所有單選按鈕將形成一個(gè)組。若要添加不同的
56、組,必須將它們放到面板或分組框中。將若干RadionButton控件放在一個(gè)GroupBox控件內(nèi)組成一組時(shí),當(dāng)這一組中的某個(gè)單選按鈕控件被選中時(shí),該組中的其他單選控件將自動(dòng)處于不選中狀態(tài)。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,86,9.4.4 單選按鈕控件,1. 常用屬性 (1)Text屬性 該屬性用于設(shè)置單選按鈕旁邊的說(shuō)明文字,以說(shuō)明單選按鈕的用途。 (2)Check屬性 表示單選按鈕是否被選中,選中則Checked值為True,否則為False。 2.響應(yīng)的事件 單選按鈕響應(yīng)的事件主要是Click事件和CheckedChanged事件。當(dāng)鼠標(biāo)單擊單選按鈕時(shí),觸發(fā)Click事件,并且
57、改變Checked屬性值。Checked屬性值的改變,同時(shí)將觸發(fā)CheckedChanged事件。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,87,9.4.4 單選按鈕控件,【例9-10】單選按鈕控件的運(yùn)用。通過(guò)選擇不同的單選按鈕,實(shí)現(xiàn)在文本框中顯示不同水果的價(jià)格。 實(shí)現(xiàn)步驟如下: (1)創(chuàng)建如圖9-18所示的窗體。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,88,9.4.4 單選按鈕控件,(2)設(shè)置窗體和各控件的屬性,如表9-3所示。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,89,9.4.4 單選按鈕控件,(3)打開(kāi)代碼窗口,編寫事件過(guò)程。 private void rdoApple_Ch
58、eckedChanged(object sender, EventArgs e) txtPrice.Text = 10.0; private void rdoBanana_CheckedChanged(object sender, EventArgs e) txtPrice.Text = 8.5; ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,90,9.4.4 單選按鈕控件,private void rdoPineapple_CheckedChanged(object sender, EventArgs e) txtPrice.Text = 12.5; ,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,91,9.4.5復(fù)選框控件,復(fù)選按鈕(CheckBox)控件,它與單選按鈕一樣,也給用戶提供一組選項(xiàng)供其選擇。但它與單選按鈕有所不同,每個(gè)復(fù)選框都是一個(gè)單獨(dú)的選項(xiàng),用戶既可以選擇它,也可以不選擇它,不存在互斥的問(wèn)題,可以同時(shí)選擇多項(xiàng)。 1. 常用屬性 (1)Text屬性。 該屬性用于設(shè)置復(fù)選框旁邊的說(shuō)明文字,以說(shuō)明復(fù)選框的用途。 (2)Check屬性。 表示復(fù)選框是否被選擇。True表示復(fù)選框被選擇,F(xiàn)alse表示復(fù)選框未被選擇。,2020/10/7,C#程序設(shè)計(jì)實(shí)用教程,92,9.4.5復(fù)選框控件,(3)CheckState
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度建筑工地臨時(shí)用工人員工資支付與爭(zhēng)議調(diào)解協(xié)議3篇
- 應(yīng)急管理概論 教學(xué)大綱
- 企業(yè)流程管理培訓(xùn)
- 二零二五年度廣告銷售渠道拓展合同范本3篇
- ChatGPT助推學(xué)校教育數(shù)字化轉(zhuǎn)型-人工智能時(shí)代學(xué)什么與怎么教
- 航空母艦發(fā)展史
- 炒菜放料知識(shí)培訓(xùn)課件
- 山西省朔州市懷仁市2024-2025學(xué)年七年級(jí)上學(xué)期1月期末生物試題(無(wú)答案)
- Unit6 Shopping A let's spell (說(shuō)課稿)-2023-2024學(xué)年人教PEP版英語(yǔ)四年級(jí)下冊(cè)
- 第16章 分式 評(píng)估測(cè)試卷(含答案)2024-2025學(xué)年數(shù)學(xué)華東師大版八年級(jí)下冊(cè)
- 2024年個(gè)人汽車抵押借款合同范本(四篇)
- 春聯(lián)課件教學(xué)課件
- 北師大版五年級(jí)上冊(cè)脫式計(jì)算400道及答案
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 地理試題
- 8《美麗文字 民族瑰寶》教學(xué)設(shè)計(jì)2023-2024學(xué)年統(tǒng)編版道德與法治五年級(jí)上冊(cè)
- 2024年工業(yè)廢水處理工(初級(jí))技能鑒定考試題庫(kù)(含答案)
- 2024新滬教版英語(yǔ)初一上單詞表(英譯漢)
- NB/T 11446-2023煤礦連采連充技術(shù)要求
- 人教版八年級(jí)上冊(cè)生物期末必刷15道識(shí)圖題
- SY-T 6966-2023 輸油氣管道工程安全儀表系統(tǒng)設(shè)計(jì)規(guī)范
- 學(xué)生公寓管理員培訓(xùn)
評(píng)論
0/150
提交評(píng)論