第6章窗體、控件和組件_第1頁
第6章窗體、控件和組件_第2頁
第6章窗體、控件和組件_第3頁
第6章窗體、控件和組件_第4頁
第6章窗體、控件和組件_第5頁
已閱讀5頁,還剩80頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 1 第第6 6章章 窗體、控件和組件窗體、控件和組件 6.1 6.1 窗體與對話框窗體與對話框 6.2 6.2 控件共有的基本操作控件共有的基本操作 6.3 6.3 容器類控件和組件容器類控件和組件 6.4 6.4 文本操作類控件文本操作類控件 6.5 6.5 選擇操作類控件選擇操作類控件 6.6 6.6 圖像操作類控件和組件圖像操作類控件和組件 6.7 6.7 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 6.86.8 視圖操作類控件視圖操作類控件 6.96.9 其他常用控件其他常用控件 2 2 界面設(shè)計舉例界面設(shè)計舉例1-1-動物的故事(動物的故事(KeyboardAndEventExam

2、pleKeyboardAndEventExample) 3 3 界面設(shè)計舉例界面設(shè)計舉例2-2-打飛鳥(打飛鳥(DownBirdDownBird) 4 4 界面設(shè)計舉例界面設(shè)計舉例3-Vista3-Vista圖片變換效果(圖片變換效果(vistaPictureBoxExample)vistaPictureBoxExample) 5 5 界面設(shè)計舉例界面設(shè)計舉例4-XP4-XP風(fēng)格的風(fēng)格的windowwindow窗體窗體(SplitContainerExample)(SplitContainerExample) 6 6 6.1 6.1 窗體與對話框窗體與對話框 1 1、窗體應(yīng)用程序的啟動和停止、

3、窗體應(yīng)用程序的啟動和停止 使用使用ApplicationApplication類提供的靜態(tài)方法來啟動、停止應(yīng)用程序。類提供的靜態(tài)方法來啟動、停止應(yīng)用程序。 ApplicationApplication類提供的方法:類提供的方法: RunRun方法:用于在當(dāng)前線程上啟動應(yīng)用程序消息循環(huán),并顯方法:用于在當(dāng)前線程上啟動應(yīng)用程序消息循環(huán),并顯 示窗體。示窗體。 ExitExit方法:用于停止消息循環(huán)。方法:用于停止消息循環(huán)。 DoEventsDoEvents方法:用于在程序處于某個循環(huán)中時處理消息。方法:用于在程序處于某個循環(huán)中時處理消息。 7 7 6.1.2 6.1.2 窗體的創(chuàng)建、顯示與隱藏窗體

4、的創(chuàng)建、顯示與隱藏 1 1、如何在代碼中打開一個新窗體、如何在代碼中打開一個新窗體 Form2 fm = new Form2();Form2 fm = new Form2(); fm.Show(); / fm.Show(); /或者或者fm.ShowDialog();fm.ShowDialog(); 2 2、如何在代碼中關(guān)閉一個窗體、如何在代碼中關(guān)閉一個窗體 用法用法1 1:fm.Close();fm.Close(); 用法用法2 2:this.Close();this.Close(); 用法用法3 3:Application.OpenFormsForm1.Close();Applicatio

5、n.OpenFormsForm1.Close(); 3 3、如何隱藏一個打開的窗體、如何隱藏一個打開的窗體 (1 1)隱藏當(dāng)前窗體:)隱藏當(dāng)前窗體:this.Hide();this.Hide(); (2 2)隱藏其它窗體:)隱藏其它窗體:Application.OpenFormsForm1.Hide();Application.OpenFormsForm1.Hide(); 4 4、如何重新顯示隱藏的窗體、如何重新顯示隱藏的窗體 (1 1)顯示當(dāng)前窗體:)顯示當(dāng)前窗體:this.Show();this.Show(); (2 2)顯示其它窗體:)顯示其它窗體:Application.OpenFor

6、msForm1.Show();Application.OpenFormsForm1.Show(); 8 8 6.1.2 6.1.2 窗體的創(chuàng)建、顯示與隱藏窗體的創(chuàng)建、顯示與隱藏 【例例6-16-1】演示窗體的基本用法以及如何顯示和關(guān)閉窗體。演示窗體的基本用法以及如何顯示和關(guān)閉窗體。 部分運行效果如圖:部分運行效果如圖: 9 9 6.1.3 6.1.3 窗體常用的屬性窗體常用的屬性 常用屬性:常用屬性: NameName:獲取或設(shè)置窗體的名稱,代碼中通過該屬性來訪問:獲取或設(shè)置窗體的名稱,代碼中通過該屬性來訪問 窗體。窗體。 BackColorBackColor:獲取或設(shè)置窗體的背景色。:獲取或

7、設(shè)置窗體的背景色。 ForeColorForeColor:獲取或設(shè)置窗體上文本的前景色。:獲取或設(shè)置窗體上文本的前景色。 LocationLocation:獲取或設(shè)置以屏幕坐標(biāo)表示的代表窗體左上角:獲取或設(shè)置以屏幕坐標(biāo)表示的代表窗體左上角 的坐標(biāo)位置。的坐標(biāo)位置。 SizeSize:指定窗體的高度和寬度。:指定窗體的高度和寬度。 TextText:設(shè)置控件上所要顯示的文本,如標(biāo)簽、按鈕和復(fù)選:設(shè)置控件上所要顯示的文本,如標(biāo)簽、按鈕和復(fù)選 框等控件上的文字??虻瓤丶系奈淖帧?1010 6.1.4 6.1.4 窗體常用屬性窗體常用屬性 設(shè)置窗體屬性的途徑有設(shè)置窗體屬性的途徑有2 2種:種: 在設(shè)

8、計模式下利用在設(shè)計模式下利用【屬性屬性】窗口設(shè)置窗體屬性。窗口設(shè)置窗體屬性。 在代碼編輯模式下設(shè)置窗體屬性。在代碼編輯模式下設(shè)置窗體屬性。 補充例題補充例題2 2(FormSetExample)FormSetExample) 1111 6.1.4 6.1.4 窗體位置及外觀控制窗體位置及外觀控制 StartPostionStartPostion:獲取或設(shè)置運行時窗體的起始位置,一般在構(gòu)造:獲取或設(shè)置運行時窗體的起始位置,一般在構(gòu)造 函數(shù)中設(shè)置此屬性。函數(shù)中設(shè)置此屬性。 例如:例如: this.StartPosition = FormStartPosition.Manual; this.Star

9、tPosition = FormStartPosition.Manual; this. Location = new Point(screenX, screenY); this. Location = new Point(screenX, screenY); 通過設(shè)置窗體的通過設(shè)置窗體的【ControlBoxControlBox】屬性為屬性為“TrueTrue”或者或者“FalsFals e e”,可以控制是否顯示最大化、最小化以及關(guān)閉按鈕。除此之,可以控制是否顯示最大化、最小化以及關(guān)閉按鈕。除此之 外,還可以通過設(shè)置窗體的外,還可以通過設(shè)置窗體的【FormBorderStyleFormBor

10、derStyle】屬性控制窗體屬性控制窗體 的邊框樣式的邊框樣式. . 1212 6.1.4 6.1.4 窗體位置及外觀控制窗體位置及外觀控制 【例例6-26-2】演示如何控制窗體的顯示位置以及如何控制窗體的演示如何控制窗體的顯示位置以及如何控制窗體的 外觀形狀。設(shè)計視圖如下:外觀形狀。設(shè)計視圖如下: 運行效果如下:運行效果如下: 1313 6.1.5 6.1.5 單文檔窗體和多文檔窗體單文檔窗體和多文檔窗體 WindowsWindows的窗體分為單文檔窗體和多文檔窗體。的窗體分為單文檔窗體和多文檔窗體。 多文檔窗體(多文檔窗體(Multi-Document Interface, MDIMul

11、ti-Document Interface, MDI)是指在一)是指在一 個主窗體中可以包含一個或多個子窗體的窗體,主窗體稱為個主窗體中可以包含一個或多個子窗體的窗體,主窗體稱為 MDIMDI父窗體,子窗體稱為父窗體,子窗體稱為MDIMDI子窗體。子窗體。 【例例6-36-3】演示演示MDIMDI窗體的基本用法以及如何顯示和關(guān)閉子窗窗體的基本用法以及如何顯示和關(guān)閉子窗 體體 1414 補充例題補充例題3 3:MDIMDI窗體用法窗體用法 運行效果如下(運行效果如下(MDIExampleMDIExample):): 1515 6.1.6 6.1.6 對話框?qū)υ捒?對話框用于與用戶交互和檢索信息。

12、對話框用于與用戶交互和檢索信息。 對話框分為標(biāo)準(zhǔn)對話框和自定義對話框。對話框分為標(biāo)準(zhǔn)對話框和自定義對話框。 1 1MessageBoxMessageBox對話框?qū)υ捒?調(diào)用調(diào)用MessageBoxMessageBox類的靜態(tài)類的靜態(tài)ShowShow方法來顯示消息對話框。返回方法來顯示消息對話框。返回 值是值是DialogResultDialogResult枚舉的值,其中每個值都等同于消息對話枚舉的值,其中每個值都等同于消息對話 框可以顯示的按鈕之一??蚩梢燥@示的按鈕之一。 Show Show方法提供了多種重載形式,常用的重載形式有:方法提供了多種重載形式,常用的重載形式有: upublic s

13、tatic DialogResult Show(string text)public static DialogResult Show(string text) upublic static DialogResult Show(string text, string public static DialogResult Show(string text, string caption)caption) upublic static DialogResult Show(public static DialogResult Show( string text, string caption, Me

14、ssageBoxButtons string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)buttons, MessageBoxIcon icon) 1616 6.1.6 6.1.6 對話框?qū)υ捒?其中:其中: TextText:在消息框中顯示的文本。:在消息框中顯示的文本。 captioncaption:在消息框的標(biāo)題欄中顯示的文本。:在消息框的標(biāo)題欄中顯示的文本。 buttonsbuttons:MessageBoxButtonsMessageBoxButtons枚舉值之一,指定在消息框中顯枚舉值之

15、一,指定在消息框中顯 示哪些按鈕。枚舉值有示哪些按鈕。枚舉值有OKOK、OKCancelOKCancel、YesNoCancelYesNoCancel和和YesNoYesNo。 iconicon:MessageBoxIconMessageBoxIcon枚舉值之一,指定在消息框中顯示哪個枚舉值之一,指定在消息框中顯示哪個 圖標(biāo)。枚舉值有圖標(biāo)。枚舉值有NoneNone(不顯示圖標(biāo))、(不顯示圖標(biāo))、HandHand(手形)、(手形)、 QuestionQuestion(問號)、(問號)、ExclamationExclamation(感嘆號)、(感嘆號)、AsteriskAsterisk(星(星 號

16、)、號)、StopStop(停止)、(停止)、ErrorError(錯誤)、(錯誤)、WarningWarning(警告)和(警告)和 InformationInformation(信息)。(信息)。 ShowShow方法的返回值是方法的返回值是DialogResultDialogResult枚舉值之一。枚舉值之一。DialogResultDialogResult 枚舉值有:枚舉值有:NoneNone(消息框未返回值)、(消息框未返回值)、OKOK、CancelCancel、YesYes和和NoNo。 1717 6.1.6 6.1.6 對話框?qū)υ捒?1818 6.1.6 6.1.6 對話框?qū)υ?/p>

17、框 2.ColorDialog2.ColorDialog:提供顏色選擇。:提供顏色選擇。 方法:方法:ShowDialogShowDialog()() 返回值:返回值:DialogResultDialogResult類型類型 3.FontDialog3.FontDialog:提供字體選擇。:提供字體選擇。 方法:方法:ShowDialogShowDialog()() 返回值:返回值:DialogResultDialogResult類型類型 用法如下:用法如下: ColorDialog colorDlg = new ColorDialog( );ColorDialog colorDlg = ne

18、w ColorDialog( ); if (colorDlg.ShowDialog( ) = DialogResult.OK)if (colorDlg.ShowDialog( ) = DialogResult.OK) textBox1.ForeColor = colorDlg.Color; textBox1.ForeColor = colorDlg.Color; 1919 6.1.6 6.1.6 對話框?qū)υ捒?自定義窗體對話框的設(shè)計方法與設(shè)計一般窗體基本相同,不同自定義窗體對話框的設(shè)計方法與設(shè)計一般窗體基本相同,不同 之處是還要對自定義窗體對話框作如下處理:之處是還要對自定義窗體對話框作如下處

19、理: u將窗體的將窗體的【FormBorderStyleFormBorderStyle】屬性更改為屬性更改為“FixedDialogFixedDialog” u將窗體的將窗體的【MaximizeBoxMaximizeBox】屬性、屬性、【MinimizeBoxMinimizeBox】屬性和屬性和 【ControlBoxControlBox】屬性設(shè)置為屬性設(shè)置為“FalseFalse” u在窗體上放一個在窗體上放一個“確定確定”按鈕,一個按鈕,一個“取消取消”按鈕。然后將按鈕。然后將 窗體的窗體的【AcceptButtonAcceptButton】屬性設(shè)置為屬性設(shè)置為“確定確定”按鈕,按鈕, 【

20、CancelButtonCancelButton】屬性設(shè)置為屬性設(shè)置為“取消取消”按鈕。按鈕。 u在按鈕事件中,設(shè)置在按鈕事件中,設(shè)置DialogResultDialogResult類型的返回值,以便讓對類型的返回值,以便讓對 話框隱藏起來話框隱藏起來 2020 6.1.6 6.1.6 對話框?qū)υ捒?【例例6-46-4】自定義窗體對話框的用法。自定義窗體對話框的用法。 設(shè)計視圖如下:設(shè)計視圖如下: 運行效果如下:運行效果如下: 2121 6.2 6.2 控件共有的基本操作控件共有的基本操作 控件和組件控件和組件 u相同點:均指可重復(fù)使用并且可以和其他對象進行交互相同點:均指可重復(fù)使用并且可以和

21、其他對象進行交互 的對象的對象 u區(qū)別:在于控件提供了用戶界面功能,而組件不提供用區(qū)別:在于控件提供了用戶界面功能,而組件不提供用 戶界面。每個控件都是一個組件,但只有提供用戶界面戶界面。每個控件都是一個組件,但只有提供用戶界面 功能的組件才稱為控件。功能的組件才稱為控件。 2222 6.2.1 6.2.1 控件常用屬性和基本操作控件常用屬性和基本操作 1.1.常用基本屬性常用基本屬性 1) (Name)1) (Name):指定控件的名稱,它是控件在當(dāng)前應(yīng)用程序中的:指定控件的名稱,它是控件在當(dāng)前應(yīng)用程序中的 唯一標(biāo)識,代碼通過該屬性來訪問控件唯一標(biāo)識,代碼通過該屬性來訪問控件 2) Enab

22、led2) Enabled:決定控件是否可用,取值為:決定控件是否可用,取值為truetrue時可用,取值為時可用,取值為 falsefalse時不可用時不可用 3 3)AnchorAnchor屬性:保持控件與邊框的距離不變屬性:保持控件與邊框的距離不變 4 4)DockDock屬性:讓控件始終緊靠邊框?qū)傩裕鹤尶丶冀K緊靠邊框 2323 6.2.1 6.2.1 控件中常用的屬性和方法控件中常用的屬性和方法 2. 2. 控件透明處理控件透明處理 將窗體中控件的背景色設(shè)置為將窗體中控件的背景色設(shè)置為“TransparentTransparent”,則該控件,則該控件 相對于其父容器是透明的。相對于

23、其父容器是透明的。 (1)Label (2)Button(1)Label (2)Button 【例例6-56-5】將圖像和文字疊加在同一幅背景圖上,讓其看起來將圖像和文字疊加在同一幅背景圖上,讓其看起來 像是一幅圖。像是一幅圖。 未設(shè)置未設(shè)置BackColorBackColor屬性時的設(shè)計界面屬性時的設(shè)計界面 設(shè)置設(shè)置BackColorBackColor屬性后的界面效果屬性后的界面效果 2424 6.2.1 6.2.1 控件中常用的屬性和方法控件中常用的屬性和方法 3 3控件的對齊方式和顯示順序控件的對齊方式和顯示順序 (1 1)當(dāng)控件的)當(dāng)控件的【AutoSizeAutoSize】屬性為屬性

24、為“FalseFalse”時,利用控件的時,利用控件的 【SizeSize】屬性可以精確控制控件屬性可以精確控制控件 (2 2)多個控件,可以按?。┒鄠€控件,可以按住鍵同時選中多個控件,然后鍵同時選中多個控件,然后 利用利用“布局布局”快捷工具欄中的快捷方式可以快速讓各控件快捷工具欄中的快捷方式可以快速讓各控件 對齊。對齊。 4 4控件的焦點順序調(diào)整控件的焦點順序調(diào)整 (1 1)利用布局工具欄中的)利用布局工具欄中的“鍵順序鍵順序”按鈕,可以在設(shè)計按鈕,可以在設(shè)計 界面下調(diào)整焦點順序界面下調(diào)整焦點順序 (2 2)如果希望在代碼中讓焦點在運行開始就處于某個控件上,)如果希望在代碼中讓焦點在運行開

25、始就處于某個控件上, 在窗體的在窗體的ShownShown事件中調(diào)用事件中調(diào)用FocusFocus方法來實現(xiàn)。方法來實現(xiàn)。 textBox1.Focus( );textBox1.Focus( ); 2525 6.2.2 6.2.2 控件的錨定和??靠丶腻^定和???1 1AnchorAnchor屬性屬性 u【AnchorAnchor】屬性定義控件的定位點位置。當(dāng)控件錨定到某屬性定義控件的定位點位置。當(dāng)控件錨定到某 個窗體時,如果用戶調(diào)整該窗體的大小,該控件將維持它個窗體時,如果用戶調(diào)整該窗體的大小,該控件將維持它 與定位點位置之間的距離不變。與定位點位置之間的距離不變。 u例如:如果一個例如:

26、如果一個TextBoxTextBox控件錨定于窗體的左、右和底邊緣,控件錨定于窗體的左、右和底邊緣, 那么當(dāng)用戶調(diào)整該窗體的大小時,該那么當(dāng)用戶調(diào)整該窗體的大小時,該TextBoxTextBox控件將在水平控件將在水平 方向上自動調(diào)整大小,以確保方向上自動調(diào)整大小,以確保TextBoxTextBox控件與該窗體右邊和控件與該窗體右邊和 左邊的距離不變。左邊的距離不變。 2626 6.2.2 6.2.2 控件的錨定和??靠丶腻^定和停靠 2. Dock2. Dock屬性屬性 u【DockDock】屬性的用途是使控件與窗體邊緣對齊。此屬性指屬性的用途是使控件與窗體邊緣對齊。此屬性指 定控件在窗體中

27、的駐留位置。定控件在窗體中的駐留位置。 u【DockDock】屬性設(shè)置為下列值:屬性設(shè)置為下列值: (1)Left(1)Left??康酱绑w的左側(cè)。停靠到窗體的左側(cè)。 (2) Right(2) Right停靠到窗體的右側(cè)。??康酱绑w的右側(cè)。 (3) Top(3) Top停靠到窗體的頂部。??康酱绑w的頂部。 (4) Bottom(4) Bottom停靠到窗體底部。停靠到窗體底部。 (5) Fill(5) Fill占據(jù)窗體中的所有剩余空間。占據(jù)窗體中的所有剩余空間。 (6) None(6) None 不在任何位置停靠,它顯示在由不在任何位置停靠,它顯示在由LocationLocation屬性指屬性指

28、 定的位置。定的位置。 u舉例說明舉例說明 2727 6.2.3 6.2.3 常用的鼠標(biāo)事件和鍵盤事件常用的鼠標(biāo)事件和鍵盤事件 事件事件: :是指由系統(tǒng)事先設(shè)定的、能被控件識別和響應(yīng)的動作是指由系統(tǒng)事先設(shè)定的、能被控件識別和響應(yīng)的動作. . 事件驅(qū)動事件驅(qū)動: Windows: Windows應(yīng)用程序的設(shè)計是基于事件驅(qū)動的。事應(yīng)用程序的設(shè)計是基于事件驅(qū)動的。事 件驅(qū)動指程序不是完全按照代碼文件中代碼的排列順序從件驅(qū)動指程序不是完全按照代碼文件中代碼的排列順序從 上到下依次執(zhí)行,而是根據(jù)用戶操作觸發(fā)相應(yīng)的事件來執(zhí)上到下依次執(zhí)行,而是根據(jù)用戶操作觸發(fā)相應(yīng)的事件來執(zhí) 行對應(yīng)的代碼。行對應(yīng)的代碼。 一

29、個控件可以響應(yīng)多個事件,設(shè)計一個控件可以響應(yīng)多個事件,設(shè)計WindowsWindows應(yīng)用程序的很多應(yīng)用程序的很多 工作就是為各個控件編寫需要的事件代碼工作就是為各個控件編寫需要的事件代碼. . 2828 6.2.3 6.2.3 常用的鼠標(biāo)事件和鍵盤事件常用的鼠標(biāo)事件和鍵盤事件 1.1.鼠標(biāo)事件鼠標(biāo)事件 uClickClick 單擊鼠標(biāo)左鍵時觸發(fā)單擊鼠標(biāo)左鍵時觸發(fā) uMouseDoubleClickMouseDoubleClick 雙擊鼠標(biāo)左鍵時觸發(fā)雙擊鼠標(biāo)左鍵時觸發(fā) uMouseEnterMouseEnter 鼠標(biāo)進入控件可見區(qū)域時觸發(fā)鼠標(biāo)進入控件可見區(qū)域時觸發(fā) uMouseMoveMous

30、eMove 鼠標(biāo)在控件區(qū)域內(nèi)移動時觸發(fā)鼠標(biāo)在控件區(qū)域內(nèi)移動時觸發(fā) uMouseLeaveMouseLeave 鼠標(biāo)離開控件可見區(qū)域時觸發(fā)鼠標(biāo)離開控件可見區(qū)域時觸發(fā) 2.2.鍵盤事件鍵盤事件 uKeyDown KeyDown 按下鍵盤上某個鍵時觸發(fā)按下鍵盤上某個鍵時觸發(fā) uKeyUp KeyUp 釋放鍵盤上的按鍵時觸發(fā)釋放鍵盤上的按鍵時觸發(fā) uKeyPress KeyPress 在在KeyDownKeyDown之后之后KeyUpKeyUp之前觸發(fā),非字符鍵不會之前觸發(fā),非字符鍵不會 觸發(fā)該事件。觸發(fā)該事件。 2929 6.2.3 6.2.3 常用的鼠標(biāo)事件和鍵盤事件常用的鼠標(biāo)事件和鍵盤事件 3.

31、3.注意注意 (1 1)KeyPressKeyPress事件或鼠標(biāo)事件處理程序沒有提供對應(yīng)的參數(shù),事件或鼠標(biāo)事件處理程序沒有提供對應(yīng)的參數(shù), 判斷鍵盤輸入稍微有點麻煩,所以一般在判斷鍵盤輸入稍微有點麻煩,所以一般在KeyDownKeyDown事件或者事件或者 KeyUpKeyUp事件中對用戶按鍵進行處理事件中對用戶按鍵進行處理 (2 2)如果希望使鍵盤消息在到達窗體上的任何控件之前先被窗)如果希望使鍵盤消息在到達窗體上的任何控件之前先被窗 體接收,需要將窗體的體接收,需要將窗體的KeyPreviewKeyPreview屬性設(shè)置為屬性設(shè)置為truetrue。 3030 6.2.3 6.2.3 常

32、用的鼠標(biāo)事件和鍵盤事件常用的鼠標(biāo)事件和鍵盤事件 【例例6-66-6】演示鼠標(biāo)和鍵盤事件的觸發(fā)條件,觸發(fā)順序,并顯演示鼠標(biāo)和鍵盤事件的觸發(fā)條件,觸發(fā)順序,并顯 示各個事件所傳遞的參數(shù)內(nèi)容。示各個事件所傳遞的參數(shù)內(nèi)容。 設(shè)計界面如下:設(shè)計界面如下: 3131 補充例題補充例題4 4:“有本事就點我!有本事就點我!” 運行效果(運行效果(ClickMeExampleClickMeExample):): 利用鼠標(biāo)事件利用鼠標(biāo)事件MouseEnterMouseEnter實現(xiàn)。實現(xiàn)。 3232 本章綜合舉例本章綜合舉例1 1實現(xiàn)要點實現(xiàn)要點 3333 本章綜合舉例本章綜合舉例1 1實現(xiàn)要點實現(xiàn)要點 控件鼠

33、標(biāo)事件和鍵盤事件處理控件鼠標(biāo)事件和鍵盤事件處理 MouseEnterMouseEnter、MouseLeaveMouseLeave、MouseClickMouseClick KeyDownKeyDown、KeyUpKeyUp 背景音樂播放背景音樂播放 SoundPlayerSoundPlayer類,播放類,播放* *.WAV.WAV格式的音樂文件格式的音樂文件 常用方法:常用方法:PlayPlay、PlayLoopingPlayLooping、StopStop 點擊動物時隨機聲音的播放點擊動物時隨機聲音的播放 RandomRandom隨機數(shù)生成器隨機數(shù)生成器 Properties.Resour

34、ceProperties.Resource資源使用方法資源使用方法 3434 6.3.1 6.3.1 分組控件(分組控件(PanelPanel、GroupBoxGroupBox) 分組控件:用于對不同的控件進行分組分組控件:用于對不同的控件進行分組 uPanelPanel控件控件 uGroupBoxGroupBox控件控件 不同:不同: uPanelPanel控件不能顯示標(biāo)題但可以有滾動條控件不能顯示標(biāo)題但可以有滾動條 u而而GroupBoxGroupBox控件可顯示標(biāo)題但不能顯示滾動條。控件可顯示標(biāo)題但不能顯示滾動條。 3535 6.3.2 6.3.2 工具提示組件(工具提示組件(ToolT

35、ipToolTip) ToolTipToolTip組件用于在用戶指向控件時顯示相應(yīng)的提示信息。組件用于在用戶指向控件時顯示相應(yīng)的提示信息。 u屬性窗口中設(shè)置提示信息屬性窗口中設(shè)置提示信息 u在代碼中利用在代碼中利用ToolTipToolTip組件的組件的SetToolTipSetToolTip方法直接設(shè)置其方法直接設(shè)置其 他控件的操作提示信息。他控件的操作提示信息。 3636 6.3.3 6.3.3 錯誤提示組件(錯誤提示組件(ErrorProviderErrorProvider) ErrorProvider ErrorProvider組件可以對窗體或控件上的用戶輸入進行組件可以對窗體或控件上

36、的用戶輸入進行 驗證。驗證。 用用MessageBoxMessageBox消息框,一旦用戶關(guān)閉了消息框,就再也看消息框,一旦用戶關(guān)閉了消息框,就再也看 不見錯誤信息不見錯誤信息 ErrorProviderErrorProvider組件則是在相關(guān)控件(如文本框)旁顯示一組件則是在相關(guān)控件(如文本框)旁顯示一 個閃爍的錯誤圖標(biāo)(),當(dāng)用戶將鼠標(biāo)指針放在該錯誤圖個閃爍的錯誤圖標(biāo)(),當(dāng)用戶將鼠標(biāo)指針放在該錯誤圖 標(biāo)上時,將出現(xiàn)顯示錯誤信息字符串的工具提示。標(biāo)上時,將出現(xiàn)顯示錯誤信息字符串的工具提示。 3737 6.3.4 6.3.4 定時組件(定時組件(TimerTimer) 4 4、TimerTi

37、mer組件:組件: 功能:主要用于設(shè)置某個時間間隔,并在每次到達設(shè)置的時功能:主要用于設(shè)置某個時間間隔,并在每次到達設(shè)置的時 間間隔時,觸發(fā)指定的事件。間間隔時,觸發(fā)指定的事件。 該組件常用的屬性是該組件常用的屬性是【EnabledEnabled】屬性和屬性和【IntervalInterval】屬性。屬性。 u【EnabledEnabled】屬性表示是否啟用計時,這是一個屬性表示是否啟用計時,這是一個boolbool類型類型 的屬性,的屬性,falsefalse表示停止計時,表示停止計時,truetrue表示開始計時;同時,表示開始計時;同時, 該組件還提供了該組件還提供了StartStart

38、方法和方法和StopStop方法,其作用與設(shè)置方法,其作用與設(shè)置 【EnabledEnabled】屬性的作用相同。屬性的作用相同。 u【IntervalInterval】屬性表示觸發(fā)屬性表示觸發(fā)TickTick事件的間隔時間,以事件的間隔時間,以msms 為計時單位,默認(rèn)為為計時單位,默認(rèn)為100ms100ms。 3838 6.3.4 6.3.4 定時組件(定時組件(TimerTimer) 4 4、TimerTimer組件(續(xù)):組件(續(xù)): 【例例6-76-7】利用利用TimerTimer組件和組件和LabelLabel控件,在窗體上方顯示類似控件,在窗體上方顯示類似 電影字幕的不停向上滾動

39、的文本,并在窗體下方顯示一個電影字幕的不停向上滾動的文本,并在窗體下方顯示一個 簡單的時鐘信息。簡單的時鐘信息。 左圖為設(shè)計界面,右圖為運行效果。左圖為設(shè)計界面,右圖為運行效果。 3939 補充例題補充例題5 5:變換顏色和位置的文字:變換顏色和位置的文字 演示效果如下(演示效果如下(TextChangeExampleTextChangeExample):): 文字會從左到右不停的移動,并且顏色在隨機變換。文字會從左到右不停的移動,并且顏色在隨機變換。 4040 補充例題補充例題5 5實現(xiàn)要點實現(xiàn)要點 控件位置變換控件位置變換 LeftLeft、TopTop BottomBottom、Righ

40、tRight 文本顏色隨機變換文本顏色隨機變換 隨機數(shù)生成器隨機數(shù)生成器RandomRandom Color.FromArgbColor.FromArgb方法生成顏色方法生成顏色 進一步思考(留給學(xué)生自己完成):進一步思考(留給學(xué)生自己完成): 文本的位置變換方向:從右到左、從上到下、從下到上、文本的位置變換方向:從右到左、從上到下、從下到上、 按某種曲線變換?如果是其他控件呢?按某種曲線變換?如果是其他控件呢? 如果窗體的前景色、背景色變換如何實現(xiàn)?如果窗體的前景色、背景色變換如何實現(xiàn)? 4141 補充例題補充例題6 6:打飛鳥游戲:打飛鳥游戲 運行效果如下:運行效果如下: 4242 補充例

41、題補充例題6 6實現(xiàn)要點實現(xiàn)要點 飛鳥的顯示飛鳥的顯示 飛鳥的移動飛鳥的移動 初始位置初始位置 變換位置變換位置 飛鳥被點擊時消失飛鳥被點擊時消失 進一步思考(功能擴展留給學(xué)生完成)進一步思考(功能擴展留給學(xué)生完成) 統(tǒng)計一段時間內(nèi)擊中飛鳥的個數(shù)?統(tǒng)計一段時間內(nèi)擊中飛鳥的個數(shù)? 記錄玩游戲玩家的名稱和當(dāng)前的成績及排行榜。記錄玩游戲玩家的名稱和當(dāng)前的成績及排行榜。 4343 6.4.1 6.4.1 標(biāo)簽控件(標(biāo)簽控件(LabelLabel、LinkLabelLinkLabel) 標(biāo)簽類控件(標(biāo)簽類控件(LabelLabel、LinkLabelLinkLabel)操作控件包括:)操作控件包括: 1

42、 1、LabelLabel:用于提供控件或窗體的描述性文字,以便為用戶提:用于提供控件或窗體的描述性文字,以便為用戶提 供相應(yīng)的信息。供相應(yīng)的信息。 常用屬性:常用屬性:TextText屬性。屬性。 2 2、LinkLabelLinkLabel: 與與LabelLabel控件的作用非常相似,不同的是控件的作用非常相似,不同的是 LinkLabelLinkLabel控件以超鏈接的形式顯示文本信息??丶猿溄拥男问斤@示文本信息。 當(dāng)用戶單擊當(dāng)用戶單擊LinkLabelLinkLabel控件時,會觸發(fā)控件時,會觸發(fā)LinkClickedLinkClicked事件??墒录??以在以在LinkCli

43、ckedLinkClicked事件中編寫代碼讓其鏈接到指定的網(wǎng)頁。事件中編寫代碼讓其鏈接到指定的網(wǎng)頁。 常用屬性:常用屬性:TextText屬性、屬性、LinkAreaLinkArea屬性、屬性、LinkDataLinkData屬性屬性 4444 6.4.2 6.4.2 文本控件文本控件 1.1.文本框文本框(TextBox)(TextBox)控件常用的基本屬性控件常用的基本屬性 1) Text1) Text:表示文本框中顯示的內(nèi)容。:表示文本框中顯示的內(nèi)容。 2) MaxLength2) MaxLength:表示用戶可以在文本框控件中最多鍵入的字符數(shù),:表示用戶可以在文本框控件中最多鍵入的字

44、符數(shù), 默認(rèn)值為默認(rèn)值為3276732767個字符。注意,由于使用的是個字符。注意,由于使用的是UnicodeUnicode字符,字符, 所以對中文和英文的字符計數(shù)方法是相同的,即一個英文字所以對中文和英文的字符計數(shù)方法是相同的,即一個英文字 符的長度為符的長度為1 1,一個漢字字符的長度也是,一個漢字字符的長度也是1 1。 3) Multiline3) Multiline:表示是否可以包含多行內(nèi)容。:表示是否可以包含多行內(nèi)容。 4) PasswordChar4) PasswordChar:用于指定在屏蔽:用于指定在屏蔽TextBoxTextBox控件中輸入的密碼字控件中輸入的密碼字 符時所要

45、使用的符號。符時所要使用的符號。 2. TextBox2. TextBox控件常用的基本事件控件常用的基本事件 TextChangedTextChanged:表示文本框中的當(dāng)前內(nèi)容(:表示文本框中的當(dāng)前內(nèi)容(TextText屬性值)更改屬性值)更改 時觸發(fā)的操作。時觸發(fā)的操作。 4545 6.4.2 6.4.2 文本操作類控件文本操作類控件 【例例6-86-8】演示演示TextBoxTextBox控件、控件、ToolTipToolTip組件和組件和ErrorProviderErrorProvider 組件的用法。組件的用法。 設(shè)計界面如下:設(shè)計界面如下: 4646 6.4.2 6.4.2 文本

46、操作類控件文本操作類控件 2.MaskedTextBox2.MaskedTextBox:掩碼文本框:掩碼文本框 主要作用主要作用 控制輸入文本的格式。如果輸入的內(nèi)容不滿足規(guī)定的格式,控制輸入文本的格式。如果輸入的內(nèi)容不滿足規(guī)定的格式, 則拒絕用戶輸入。則拒絕用戶輸入。 常用屬性常用屬性 【MaskMask】屬性,用于設(shè)置當(dāng)前掩碼文本框輸入字符的格式。屬性,用于設(shè)置當(dāng)前掩碼文本框輸入字符的格式。 。 4747 6.4.2 6.4.2 文本操作類控件文本操作類控件 3.RichTextBox3.RichTextBox: 主要功能是進行高級文本輸入和編輯,作為一般的文本輸主要功能是進行高級文本輸入和

47、編輯,作為一般的文本輸 入,其屬性、事件與入,其屬性、事件與TextBoxTextBox控件的屬性、事件大致相同??丶膶傩?、事件大致相同。 它可以完成與它可以完成與Microsoft WordMicrosoft Word相似的復(fù)雜文字處理功能,相似的復(fù)雜文字處理功能, 比如改變文本、段落的顯示格式,在文本中查找特定字符比如改變文本、段落的顯示格式,在文本中查找特定字符 和字符串等,可以保存圖像內(nèi)容。和字符串等,可以保存圖像內(nèi)容。 常用屬性常用屬性 (1)SelectionFont(1)SelectionFont 表示當(dāng)前選中文本或所要輸入文本的字體、大小、效果表示當(dāng)前選中文本或所要輸入文本的

48、字體、大小、效果 等等 (2)SelectionColor(2)SelectionColor 表示當(dāng)前選中文本或所要輸入文本的顏色表示當(dāng)前選中文本或所要輸入文本的顏色 4848 6.5.1 6.5.1 列表控件(列表控件(ListBoxListBox、ComboBoxComboBox) 1 1、列表類控件(、列表類控件(ListBoxListBox控件、控件、ComboBoxComboBox控件)控件) (1 1)ListBoxListBox(列表框)控件和(列表框)控件和ComboBoxComboBox(下拉框)控件均用(下拉框)控件均用 于顯示一組條目,以便操作者從中選擇一條或者多條信息,

49、于顯示一組條目,以便操作者從中選擇一條或者多條信息, 并對其進行相應(yīng)的處理。并對其進行相應(yīng)的處理。 (2 2)常用的屬性和方法)常用的屬性和方法 uItemsItems uSelectedIndexSelectedIndex、SelectedItemSelectedItem uSelectedItemsSelectedItems uCount Count uItems.AddItems.Add uItems.AddRangeItems.AddRange uItems.RemoveItems.Remove、Items.RemoveAtItems.RemoveAt uItems.ClearItem

50、s.Clear 4949 6.5.1 6.5.1 列表控件(列表控件(ListBoxListBox、ComboBoxComboBox) 1 1ListBoxListBox控件的其他屬性控件的其他屬性 MutiColumnMutiColumn屬性:決定是否可以以多列的形式顯示各項。屬性:決定是否可以以多列的形式顯示各項。 SelectionModeSelectionMode屬性:選擇列表項的方式。屬性:選擇列表項的方式。 uNoneNone:不能選擇任何條目;:不能選擇任何條目; uOneOne:每次只能選擇一個條目;:每次只能選擇一個條目; uMultiSimpleMultiSimple:每次

51、可以選擇一個條目或者多個條目,單:每次可以選擇一個條目或者多個條目,單 擊對應(yīng)條目即被選中,再次單擊取消選中;擊對應(yīng)條目即被選中,再次單擊取消選中; uMultiExtendedMultiExtended:每次可以選擇一個條目或者多個條目,:每次可以選擇一個條目或者多個條目, 僅用鼠標(biāo)單擊各條目時,每次選擇一個條目;使用組合僅用鼠標(biāo)單擊各條目時,每次選擇一個條目;使用組合 鍵(如鍵(如或或鍵)配合時,可以選擇多個條目。鍵)配合時,可以選擇多個條目。 HorizontalScrollbarHorizontalScrollbar屬性:獲取或設(shè)置一個值(屬性:獲取或設(shè)置一個值(truetrue或者或

52、者 falsefalse),該值指示是否在控件中顯示水平滾動條。),該值指示是否在控件中顯示水平滾動條。 5050 6.5.1 6.5.1 列表控件(列表控件(ListBoxListBox、ComboBoxComboBox) 2 2、ComboBoxComboBox控件的其他屬性控件的其他屬性 ComboBoxComboBox控件是控件是TextBoxTextBox和和ListBoxListBox組合出來的結(jié)果。組合出來的結(jié)果。 該控件包含了兩個部分:頂部是一個允許用戶鍵入列表項該控件包含了兩個部分:頂部是一個允許用戶鍵入列表項 的文本框(的文本框(TextBoxTextBox)和文本框右邊帶

53、有向下箭頭的按鈕組)和文本框右邊帶有向下箭頭的按鈕組 合出來的結(jié)果合出來的結(jié)果 DropDownStyleDropDownStyle屬性:表示組合框的顯示樣式,它有屬性:表示組合框的顯示樣式,它有3 3種選種選 擇形式。擇形式。 SimpleSimple:同時顯示文本框和列表框,文本框可以被編輯。:同時顯示文本框和列表框,文本框可以被編輯。 DropDownDropDown:只顯示文本框,隱藏列表框,且文本框可以被:只顯示文本框,隱藏列表框,且文本框可以被 編輯。編輯。 DropDownListDropDownList:只顯示文本框,隱藏列表框,但文本框不:只顯示文本框,隱藏列表框,但文本框不

54、 可以被編輯??梢员痪庉?。 MaxDropDownItemsMaxDropDownItems屬性:設(shè)置打開列表框時所顯示的最大屬性:設(shè)置打開列表框時所顯示的最大 條目數(shù)。條目數(shù)。 5151 6.5.1 6.5.1 列表控件(列表控件(ListBoxListBox、ComboBoxComboBox) 【例例6-96-9】設(shè)計一個簡單的選修課程修改界面,從可選項中選擇設(shè)計一個簡單的選修課程修改界面,從可選項中選擇 課程添加到選修的課程列表內(nèi)。如果可選項中沒有提供所選課程添加到選修的課程列表內(nèi)。如果可選項中沒有提供所選 課程,允許用戶直接鍵入新課程,并自動將鍵入的新課程添課程,允許用戶直接鍵入新課程

55、,并自動將鍵入的新課程添 加到供選擇的課程中。加到供選擇的課程中。 設(shè)計界面如下:設(shè)計界面如下: 5252 6.5.2 6.5.2 復(fù)選框控件復(fù)選框控件 1.CheckBox1.CheckBox控件控件 (1).(1).三種狀態(tài)三種狀態(tài) (2).(2).常用屬性常用屬性 CheckedChecked屬性:屬性:true,falsetrue,false CheckStateCheckState屬性屬性 :Checked:Checked、UncheckedUnchecked和和IndeterminateIndeterminate ThreeStateThreeState屬性屬性 Text Text

56、屬性屬性 (3).(3).常用事件常用事件 CheckedChangedCheckedChanged事件事件 5353 6.5.2 6.5.2 復(fù)選框控件復(fù)選框控件 1.CheckBox1.CheckBox控件控件 【例例6-106-10】設(shè)計一個窗體,讓用戶選擇球類參賽項目,要求用設(shè)計一個窗體,讓用戶選擇球類參賽項目,要求用 一個復(fù)選框表示是否參加所有比賽項目,如果只參加了部一個復(fù)選框表示是否參加所有比賽項目,如果只參加了部 分球賽項目,該復(fù)選框用分球賽項目,該復(fù)選框用“不確定不確定”狀態(tài)表示。設(shè)計界面狀態(tài)表示。設(shè)計界面 如下:如下: 5454 6.5.2 6.5.2 復(fù)選框控件復(fù)選框控件

57、2 2CheckedListBoxCheckedListBox控件控件 適用場合:當(dāng)窗體中所需的復(fù)選框選項較多時,或者需要在運適用場合:當(dāng)窗體中所需的復(fù)選框選項較多時,或者需要在運 行時動態(tài)地決定有哪些選項時,使用此控件比較方便。行時動態(tài)地決定有哪些選項時,使用此控件比較方便。 常用屬性、方法常用屬性、方法 (1) Items(1) Items屬性:項的集合。屬性:項的集合。 (2) Count(2) Count屬性:項的數(shù)目。屬性:項的數(shù)目。 (3) CheckedItems(3) CheckedItems屬性:獲取選中項的集合。屬性:獲取選中項的集合。 (4) CheckedIndices

58、(4) CheckedIndices屬性:獲取選中項索引的集合。屬性:獲取選中項索引的集合。 (4) MultiColumn (4) MultiColumn屬性:屬性:truetrue或或falsefalse。 (5) GetItemChecked(5) GetItemChecked方法:獲取指定項是否被選中方法:獲取指定項是否被選中 。 (6) SetItemChecked(6) SetItemChecked方法:設(shè)置某個復(fù)選框的選中狀態(tài)。方法:設(shè)置某個復(fù)選框的選中狀態(tài)。 5555 6.5.2 6.5.2 復(fù)選框控件復(fù)選框控件 2 2CheckedListBoxCheckedListBox控

59、件控件 【例例6-116-11】設(shè)計一個簡單的課程選擇界面,演示設(shè)計一個簡單的課程選擇界面,演示CheckedListBoxCheckedListBox 控件的用法??丶挠梅ā?左圖為設(shè)計界面,右圖為運行效果。左圖為設(shè)計界面,右圖為運行效果。 5656 補充例題:補充例題:CheckedListBoxCheckedListBox用法用法 運行效果如下:運行效果如下: 5757 6.5.6.5.3 3 RadioButton RadioButton控件控件 1.1.特點:特點: (1)(1)單選單選 (2)(2)以各自所在的容器來劃分組,如果在一個窗體上創(chuàng)建多以各自所在的容器來劃分組,如果在一

60、個窗體上創(chuàng)建多 個單選按鈕組,可以使用個單選按鈕組,可以使用GroupBoxGroupBox或者或者PanelPanel控件作為容器??丶鳛槿萜?。 2. 2. 與與CheckBoxCheckBox相比,相比,RadioButtonRadioButton控件除了是單選外,其他用控件除了是單選外,其他用 法與法與CheckBoxCheckBox用法相同。用法相同。 5858 6.5.6.5.3 3 RadioButton RadioButton控件控件 【例例6-126-12】演示演示RadioButtonRadioButton控件的用法??丶挠梅ā?設(shè)計界面如下:設(shè)計界面如下: 5959 6

溫馨提示

  • 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

提交評論