版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 1第第6 6章章 窗體、控件和組件窗體、控件和組件6.16.1 窗體與對(duì)話框窗體與對(duì)話框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 26.1 6.1 窗體與對(duì)話框窗體與對(duì)話框 WindowsWindows窗體已經(jīng)對(duì)窗體已經(jīng)對(duì)WindowsWindows開(kāi)發(fā)
2、產(chǎn)生了影響。開(kāi)發(fā)產(chǎn)生了影響。WindowsWindows客戶客戶應(yīng)用程序開(kāi)發(fā)起來(lái)非??焖俸透咝?,它們可以為用戶提供應(yīng)用程序開(kāi)發(fā)起來(lái)非常快速和高效,它們可以為用戶提供豐富的體驗(yàn)。豐富的體驗(yàn)。 創(chuàng)建新創(chuàng)建新WindowsWindows窗體窗體( (也稱為窗口或?qū)υ捒蛞卜Q為窗口或?qū)υ捒? )非常方便,非常方便,采用采用把控件從工具箱拖放到窗體設(shè)計(jì)器上的方式。把控件從工具箱拖放到窗體設(shè)計(jì)器上的方式。3 3Program.csProgram.cs代碼:代碼:4 4分析:分析: using System; using System.Collections.Generic;using System; usi
3、ng System.Collections.Generic; using System.Linq; using System.Windows.Forms;using System.Linq; using System.Windows.Forms; namespace WindowsFormsApplication1 namespace WindowsFormsApplication1 /命名空間命名空間 static class Program static class Program / Program / Program 類類 STAThread STAThread /指示應(yīng)用程序的默認(rèn)線
4、程模型是單線程單元指示應(yīng)用程序的默認(rèn)線程模型是單線程單元 (STA)(STA)。由于很多。由于很多COMCOM在在.NET.NET環(huán)境下如果使用多線程的話,會(huì)導(dǎo)致引用的環(huán)境下如果使用多線程的話,會(huì)導(dǎo)致引用的COMCOM不能正常運(yùn)行,不能正常運(yùn)行,而如果不聲明程序?yàn)槎绻宦暶鞒绦驗(yàn)镾TAThreadSTAThread的話,的話,.NET.NET就會(huì)自動(dòng)使用多線程來(lái)提高就會(huì)自動(dòng)使用多線程來(lái)提高效率,這樣就會(huì)導(dǎo)致不可預(yù)知的后果。效率,這樣就會(huì)導(dǎo)致不可預(yù)知的后果。 static void static void Main() /Main() /應(yīng)用程序的主入口點(diǎn)應(yīng)用程序的主入口點(diǎn) Applicati
5、on.EnableVisualStyles(); Application.EnableVisualStyles(); /為應(yīng)用程序啟用可視樣式為應(yīng)用程序啟用可視樣式 Application.SetCompatibleTextRenderingDefault(false);Application.SetCompatibleTextRenderingDefault(false); /設(shè)置控件顯示文本的默認(rèn)方式設(shè)置控件顯示文本的默認(rèn)方式: :使用使用GDIGDI方式顯示文本方式顯示文本 Application.Run(new Form1();Application.Run(new Form1();
6、5 5 ApplicationApplication類類:提供提供 static static 方法和屬性以管理應(yīng)用程序,例方法和屬性以管理應(yīng)用程序,例如啟動(dòng)和停止應(yīng)用程序、處理如啟動(dòng)和停止應(yīng)用程序、處理 Windows Windows 消息的方法和獲取應(yīng)用消息的方法和獲取應(yīng)用程序信息的屬性。程序信息的屬性。 主要方法:主要方法: Run Run 在當(dāng)前線程上啟動(dòng)應(yīng)用程序消息循環(huán),并可以選擇使某在當(dāng)前線程上啟動(dòng)應(yīng)用程序消息循環(huán),并可以選擇使某窗體可見(jiàn)。窗體可見(jiàn)。 Exit Exit 或或 ExitThread ExitThread 停止消息循環(huán)。停止消息循環(huán)。 DoEvents DoEvent
7、s 在您的程序處于某個(gè)循環(huán)中時(shí)處理消息。在您的程序處于某個(gè)循環(huán)中時(shí)處理消息。 public static void Run(Form mainForm) public static void Run(Form mainForm) 在當(dāng)前線程上開(kāi)始運(yùn)在當(dāng)前線程上開(kāi)始運(yùn)行標(biāo)準(zhǔn)應(yīng)用程序消息循環(huán),并使指定窗體可見(jiàn)。行標(biāo)準(zhǔn)應(yīng)用程序消息循環(huán),并使指定窗體可見(jiàn)。 public static void Exit()public static void Exit()通知所有消息泵必須終止,并且在通知所有消息泵必須終止,并且在處理了消息以后關(guān)閉所有應(yīng)用程序窗口。處理了消息以后關(guān)閉所有應(yīng)用程序窗口。 public
8、static void DoEvents()public static void DoEvents()處理當(dāng)前在消息隊(duì)列中的所有處理當(dāng)前在消息隊(duì)列中的所有 Windows Windows 消息。消息。6 6Form1Form1的初始代碼的初始代碼7 7分析:分析: Win Form (Form1Win Form (Form1類)組成:類)組成:界面:界面:Form1.Designer.csForm1.Designer.cs:是:是VSVS對(duì)窗體的設(shè)計(jì)、生成代對(duì)窗體的設(shè)計(jì)、生成代碼,碼,VSVS自動(dòng)生成的文本文件,里面有窗體的設(shè)計(jì)、生成自動(dòng)生成的文本文件,里面有窗體的設(shè)計(jì)、生成代碼,最好不要來(lái)這
9、里寫代碼。代碼,最好不要來(lái)這里寫代碼。 CodeCode:Form1.csForm1.cs:是用戶對(duì)窗體的操作代碼,里面通常:是用戶對(duì)窗體的操作代碼,里面通常有窗體事件代碼。在這里寫窗體的操作代碼。有窗體事件代碼。在這里寫窗體的操作代碼。8 8 using System; using System.Collections.Generic;using using System; using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.ComponentModel;usi
10、ng System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;System.Windows.Forms; namespace WindowsFormsApplication1namespace WindowsFormsApplication1 public partial class Form1 : Form / partial public pa
11、rtial class Form1 : Form / partial是局部類型是局部類型 public Form1() public Form1() InitializeComponent(); / InitializeComponent(); /在在Form1.Designer.csForm1.Designer.cs中中 9 96.1.2 6.1.2 窗體的創(chuàng)建、顯示與隱藏窗體的創(chuàng)建、顯示與隱藏1 1、如何在代碼中打開(kāi)一個(gè)新窗體、如何在代碼中打開(kāi)一個(gè)新窗體 Form2 fm = new Form2();Form2 fm = new Form2(); fm.Show(); / fm.Show(
12、); /非模式顯示非模式顯示 fm.ShowDialog(); / fm.ShowDialog(); /模式顯示模式顯示2 2、如何在代碼中關(guān)閉一個(gè)窗體、如何在代碼中關(guān)閉一個(gè)窗體 用法用法1 1:fm.Close();fm.Close(); 用法用法2 2:this.Close();this.Close(); 用法用法3 3:Application.OpenFormsForm1.Close();Application.OpenFormsForm1.Close();Application.OpenForms:Application.OpenForms:已已 “打開(kāi)打開(kāi)” ” 的窗體的集合的窗體的
13、集合3 3、如何隱藏一個(gè)打開(kāi)的窗體、如何隱藏一個(gè)打開(kāi)的窗體 (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.OpenFormsForm1.Show();Applicatio
14、n.OpenFormsForm1.Show();10106.1.2 6.1.2 窗體的創(chuàng)建、顯示與隱藏窗體的創(chuàng)建、顯示與隱藏【例例6-16-1】演示窗體的基本用法以及如何顯示和關(guān)閉窗體。演示窗體的基本用法以及如何顯示和關(guān)閉窗體。部分運(yùn)行效果如圖:部分運(yùn)行效果如圖:11116.1.3 6.1.3 窗體常用的屬性窗體常用的屬性常用屬性:常用屬性: NameName:獲取或設(shè)置窗體的名稱,代碼中通過(guò)該屬性來(lái)訪問(wèn):獲取或設(shè)置窗體的名稱,代碼中通過(guò)該屬性來(lái)訪問(wèn)窗體。窗體。 BackColorBackColor:獲取或設(shè)置窗體的背景色。:獲取或設(shè)置窗體的背景色。 ForeColorForeColor:獲取
15、或設(shè)置窗體上文本的前景色。:獲取或設(shè)置窗體上文本的前景色。 LocationLocation:獲取或設(shè)置以屏幕坐標(biāo)表示的代表窗體左上角:獲取或設(shè)置以屏幕坐標(biāo)表示的代表窗體左上角的坐標(biāo)位置。的坐標(biāo)位置。 SizeSize:指定窗體的高度和寬度。:指定窗體的高度和寬度。 TextText:設(shè)置窗體標(biāo)題欄上所要顯示的文本。:設(shè)置窗體標(biāo)題欄上所要顯示的文本。1212窗體常用的屬性和外觀控制窗體常用的屬性和外觀控制StartPostionStartPostion:獲取或設(shè)置運(yùn)行時(shí)窗體的起始位置,一般在構(gòu)造:獲取或設(shè)置運(yùn)行時(shí)窗體的起始位置,一般在構(gòu)造函數(shù)中設(shè)置此屬性。函數(shù)中設(shè)置此屬性。例如:例如:this
16、.StartPosition = FormStartPosition.Manual;this.StartPosition = FormStartPosition.Manual;this. Location = new Point(screenX, screenY);this. Location = new Point(screenX, screenY);ControlBoxControlBox:通過(guò)設(shè)置窗體的:通過(guò)設(shè)置窗體的【ControlBoxControlBox】屬性為屬性為“TrueTrue”或或者者“FalseFalse”,可以控制是否顯示最大化、最小化以及關(guān)閉按,可以控制是否顯示最大
17、化、最小化以及關(guān)閉按鈕。鈕。FormBorderStyleFormBorderStyle:屬性控制窗體的邊框樣式。:屬性控制窗體的邊框樣式。1313 常用方法常用方法 Close()Close():窗體關(guān)閉,釋放所有資源。如窗體為主窗體,執(zhí)行此方:窗體關(guān)閉,釋放所有資源。如窗體為主窗體,執(zhí)行此方法,程序結(jié)束。法,程序結(jié)束。 Hide()Hide():隱藏窗體,但不破壞窗體,也不釋放資源,可用方法:隱藏窗體,但不破壞窗體,也不釋放資源,可用方法Show()Show()重新打開(kāi)。重新打開(kāi)。 Show()Show():顯示窗體。:顯示窗體。 FormForm類常用事件類常用事件 當(dāng)當(dāng) Windows
18、 Form Windows Form 啟動(dòng)時(shí)啟動(dòng)時(shí),會(huì)會(huì)以下列以下列順順序引序引發(fā)發(fā)主要表主要表單單的啟動(dòng)事件:的啟動(dòng)事件:Form.:.LoadForm.:.LoadForm.:.ActivatedForm.:.ActivatedForm.:.ShownForm.:.Shown 當(dāng)當(dāng)Windows FormWindows Form關(guān)閉時(shí)關(guān)閉時(shí),會(huì)會(huì)以下列以下列順順序引序引發(fā)發(fā)主要表主要表單單的的關(guān)閉關(guān)閉事件:事件:Form.:.ClosingForm.:.ClosingForm.:.FormClosingForm.:.FormClosingForm.:.ClosedForm.:.Closed
19、Form.:.FormClosedForm.:.FormClosedForm.:.DeactivateForm.:.Deactivate14146.1.4 6.1.4 窗體位置及外觀控制窗體位置及外觀控制【例例6-26-2】演示如何控制窗體的顯示位置以及如何控制窗體的演示如何控制窗體的顯示位置以及如何控制窗體的外觀形狀。設(shè)計(jì)視圖如下:外觀形狀。設(shè)計(jì)視圖如下:運(yùn)行效果如下:運(yùn)行效果如下:15156.1.5 6.1.5 單文檔窗體和多文檔窗體單文檔窗體和多文檔窗體WindowsWindows的窗體分為的窗體分為單文檔窗體和多文檔窗體單文檔窗體和多文檔窗體。多文檔窗體(多文檔窗體(Multi-Doc
20、ument Interface, MDIMulti-Document Interface, MDI)是指在一個(gè)主窗體)是指在一個(gè)主窗體中可以包含一個(gè)或多個(gè)子窗體的窗體。主窗體稱為中可以包含一個(gè)或多個(gè)子窗體的窗體。主窗體稱為MDIMDI父窗體,子父窗體,子窗體稱為窗體稱為MDIMDI子窗體。子窗體。MDIMDI父窗體:父窗體: .IsMdiContainer .IsMdiContainer 屬性為屬性為 true true 的的formformMDIMDI子窗體:子窗體: .MdiParent.MdiParent屬性為屬性為MDIMDI父窗體名稱父窗體名稱步驟:步驟:(1 1)首先要設(shè)定主窗體是
21、一個(gè))首先要設(shè)定主窗體是一個(gè)MDIMDI窗體的容器,語(yǔ)句如下:窗體的容器,語(yǔ)句如下: this.IsMdiContainer = true ; this.IsMdiContainer = true ;(2 2)在主窗體上面新建一個(gè))在主窗體上面新建一個(gè)MDIMDI窗體。關(guān)鍵是要設(shè)定此窗體。關(guān)鍵是要設(shè)定此MDIMDI窗體的父窗體的父窗體。窗體。Form frmTemp = new Form ( ) ;/Form frmTemp = new Form ( ) ;/新建一個(gè)窗體新建一個(gè)窗體frmTemp.MdiParent = this ; /frmTemp.MdiParent = this ; /
22、定義此窗體的父窗體,從而定義此窗體的父窗體,從而此窗體成為一個(gè)此窗體成為一個(gè)MDIMDI窗體窗體frmTemp.Show ( ) ; /frmTemp.Show ( ) ; /把此把此MDIMDI窗體顯示出來(lái)窗體顯示出來(lái)16166.1.5 6.1.5 單文檔窗體和多文檔窗體單文檔窗體和多文檔窗體【例例6-36-3】演示演示MDIMDI窗體的基本用法以及如何顯示和關(guān)閉子窗體。窗體的基本用法以及如何顯示和關(guān)閉子窗體。17176.1.6 6.1.6 對(duì)話框?qū)υ捒?對(duì)話框用于與用戶交互和檢索信息。對(duì)話框用于與用戶交互和檢索信息。 對(duì)話框分為標(biāo)準(zhǔn)對(duì)話框和自定義對(duì)話框。對(duì)話框分為標(biāo)準(zhǔn)對(duì)話框和自定義對(duì)話框。
23、1 1MessageBoxMessageBox對(duì)話框?qū)υ捒?調(diào)用調(diào)用MessageBoxMessageBox類的靜態(tài)類的靜態(tài)ShowShow方法來(lái)顯示消息對(duì)話框。返回方法來(lái)顯示消息對(duì)話框。返回值是值是MessageBoxResultMessageBoxResult枚舉的值,其中每個(gè)值都等同于消息枚舉的值,其中每個(gè)值都等同于消息對(duì)話框可以顯示的按鈕之一。對(duì)話框可以顯示的按鈕之一。 ShowShow方法提供了多種重載形式,常用的重載形式有:方法提供了多種重載形式,常用的重載形式有: public static DialogResult Show(string text)public static
24、DialogResult Show(string text) public static DialogResult Show(string text, string caption)public static DialogResult Show(string text, string caption) public static DialogResult Show(public static DialogResult Show( string text, string caption, MessageBoxButtons buttons, string text, string caption
25、, MessageBoxButtons buttons, MessageBoxIcon icon)MessageBoxIcon icon)18186.1.6 6.1.6 對(duì)話框?qū)υ捒蚱渲校浩渲校?TextText:在消息框中顯示的文本。:在消息框中顯示的文本。 captioncaption:在消息框的標(biāo)題欄中顯示的文本。:在消息框的標(biāo)題欄中顯示的文本。 buttonsbuttons:MessageBoxButtonsMessageBoxButtons枚舉值之一,指定在消息框中顯枚舉值之一,指定在消息框中顯示哪些按鈕。枚舉值有示哪些按鈕。枚舉值有OKOK、OKCancelOKCancel、Yes
26、NoCancelYesNoCancel和和YesNoYesNo。 iconicon:MessageBoxIconMessageBoxIcon枚舉值之一,指定在消息框中顯示哪個(gè)枚舉值之一,指定在消息框中顯示哪個(gè)圖標(biāo)。枚舉值有圖標(biāo)。枚舉值有NoneNone(不顯示圖標(biāo))、(不顯示圖標(biāo))、HandHand(手形)、(手形)、QuestionQuestion(問(wèn)號(hào))、(問(wèn)號(hào))、ExclamationExclamation(感嘆號(hào))、(感嘆號(hào))、AsteriskAsterisk(星(星號(hào))、號(hào))、StopStop(停止)、(停止)、ErrorError(錯(cuò)誤)、(錯(cuò)誤)、WarningWarning(警
27、告)和(警告)和InformationInformation(信息)。(信息)。 ShowShow方法的返回值:是方法的返回值:是DialogResultDialogResult枚舉值之一。枚舉值之一。DialogResultDialogResult枚舉值有:枚舉值有:NoneNone(消息框未返回值)、(消息框未返回值)、OKOK、CancelCancel、YesYes和和NoNo。1919例如:例如: DialogResult dr1 = MessageBox.Show(DialogResult dr1 = MessageBox.Show(提示對(duì)話框提示對(duì)話框, , 我的對(duì)話框我的對(duì)話框,
28、 , MessageBoxButtons.YesNoMessageBoxButtons.YesNo,MessageBoxIcon.Information,Me,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1,MessageBoxOptions.DefaussageBoxDefaultButton.Button1,MessageBoxOptions.DefaultDesktopOnly );ltDesktopOnly );if (dr1 = if (dr1 = DialogResult.YesDialogResult.Yes)
29、 ) MessageBox.Show( MessageBox.Show(你單擊了是你單擊了是););elseelse MessageBox.Show( MessageBox.Show(你單擊了否你單擊了否);); 20206.1.6 6.1.6 對(duì)話框?qū)υ捒?1216.1.6 6.1.6 對(duì)話框?qū)υ捒?.ColorDialog2.ColorDialog:提供顏色選擇。:提供顏色選擇。 方法:方法:ShowDialogShowDialog()() 返回值:返回值:DialogResultDialogResult類型類型3.FontDialog3.FontDialog:提供字體選擇。:提供字體選擇
30、。 方法:方法:ShowDialogShowDialog()() 返回值:返回值:DialogResultDialogResult類型類型用法如下:用法如下: ColorDialog colorDlg = new ColorDialog();ColorDialog colorDlg = new ColorDialog(); FontDialog fontDlg = new FontDialog(); FontDialog fontDlg = new FontDialog(); textBox1.Text = textBox1.Text = 武漢理工大學(xué)武漢理工大學(xué); if (colorDlg.
31、ShowDialog() = DialogResult.OK) if (colorDlg.ShowDialog() = DialogResult.OK) textBox1.ForeColor = colorDlg.Color; textBox1.ForeColor = colorDlg.Color; if (fontDlg.ShowDialog() = DialogResult.OK) if (fontDlg.ShowDialog() = DialogResult.OK) textBox1.Font = fontDlg.Font; textBox1.Font = fontDlg.Font; 2
32、2226.1.6 6.1.6 對(duì)話框?qū)υ捒?自定義窗體對(duì)話框自定義窗體對(duì)話框的設(shè)計(jì)方法與設(shè)計(jì)一般窗體基本相同,不同的設(shè)計(jì)方法與設(shè)計(jì)一般窗體基本相同,不同之處是還要對(duì)自定義窗體對(duì)話框作如下處理:之處是還要對(duì)自定義窗體對(duì)話框作如下處理:將窗體的將窗體的【FormBorderStyleFormBorderStyle】屬性更改為屬性更改為“FixedDialogFixedDialog”。將窗體的將窗體的【MaximizeBoxMaximizeBox】屬性、屬性、【MinimizeBoxMinimizeBox】屬性和屬性和【ControlBoxControlBox】屬性設(shè)置為屬性設(shè)置為“FalseFal
33、se”。在窗體上放一個(gè)在窗體上放一個(gè)“確定確定”按鈕,一個(gè)按鈕,一個(gè)“取消取消”按鈕。然后按鈕。然后將窗體的將窗體的【AcceptButtonAcceptButton】屬性設(shè)置為屬性設(shè)置為“確定確定”按鈕,按鈕,【CancelButtonCancelButton】屬性設(shè)置為屬性設(shè)置為“取消取消”按鈕。按鈕。在按鈕事件中,設(shè)置在按鈕事件中,設(shè)置DialogResultDialogResult類型的返回值,以便讓類型的返回值,以便讓對(duì)話框隱藏起來(lái):對(duì)話框隱藏起來(lái): this. DialogResult=DialogResult.OK; this. DialogResult=DialogResult
34、.OK; this. DialogResult=DialogResult.Cancel; this. DialogResult=DialogResult.Cancel;23236.1.6 6.1.6 對(duì)話框?qū)υ捒颉纠?-46-4】自定義窗體對(duì)話框的用法。自定義窗體對(duì)話框的用法。 設(shè)計(jì)視圖如下:設(shè)計(jì)視圖如下:運(yùn)行效果如下:運(yùn)行效果如下:24246.2 6.2 控件共有的基本操作控件共有的基本操作控件是帶有可視化表示形式的組件??丶菐в锌梢暬硎拘问降慕M件。System.Windows.FormsSystem.Windows.Forms命名空間中有一個(gè)特殊的類,它是每個(gè)控件命名空間中有一個(gè)特殊
35、的類,它是每個(gè)控件和窗體的基類,這個(gè)類就是和窗體的基類,這個(gè)類就是System.Windows.Forms.ControlSystem.Windows.Forms.Control。ControlControl類類實(shí)現(xiàn)向用戶顯示信息的類所需的最基本功能實(shí)現(xiàn)向用戶顯示信息的類所需的最基本功能,創(chuàng)建用戶,創(chuàng)建用戶所見(jiàn)的界面所見(jiàn)的界面。它處理用戶通過(guò)鍵盤和指針設(shè)備所進(jìn)行的輸入,雖。它處理用戶通過(guò)鍵盤和指針設(shè)備所進(jìn)行的輸入,雖然它并不實(shí)現(xiàn)繪制,但是它定義控件的邊界(其位置和大?。?。然它并不實(shí)現(xiàn)繪制,但是它定義控件的邊界(其位置和大?。?。它提供窗口句柄它提供窗口句柄 (hWnd)(hWnd)。Contro
36、lControl類派生于類派生于System.ComponentModel.ComponentSystem.ComponentModel.Component類。類。ComponentComponent類為類為ControlControl類提供了必要的基礎(chǔ)結(jié)構(gòu),在把控件拖放類提供了必要的基礎(chǔ)結(jié)構(gòu),在把控件拖放到設(shè)計(jì)界面上以及包含在另一個(gè)對(duì)象中時(shí)需要它。到設(shè)計(jì)界面上以及包含在另一個(gè)對(duì)象中時(shí)需要它。ControlControl類為派生于它的類提供了一個(gè)很長(zhǎng)的功能列表。這個(gè)列表類為派生于它的類提供了一個(gè)很長(zhǎng)的功能列表。這個(gè)列表太長(zhǎng),不能在這里全部列出。太長(zhǎng),不能在這里全部列出。2525System.W
37、indows.Forms.Control System.Windows.Forms.Control 的派生類的派生類 System.Windows.Forms.AxHost System.Windows.Forms.AxHost System.Windows.Forms.ButtonBase System.Windows.Forms.ButtonBase System.Windows.Forms.DataGrid System.Windows.Forms.DataGrid System.Windows.Forms.DataGridView System.Windows.Forms.DataGr
38、idView System.Windows.Forms.DateTimePicker System.Windows.Forms.DateTimePicker System.Windows.Forms.GroupBox System.Windows.Forms.GroupBox System.Windows.Forms.Integration.ElementHost System.Windows.Forms.Integration.ElementHost System.Windows.Forms.Label System.Windows.Forms.Label System.Windows.Fo
39、rms.ListControl System.Windows.Forms.ListControl System.Windows.Forms.ListView System.Windows.Forms.ListView System.Windows.Forms.MdiClient System.Windows.Forms.MdiClient System.Windows.Forms.MonthCalendar System.Windows.Forms.MonthCalendar2626 System.Windows.Forms.PictureBox System.Windows.Forms.Pi
40、ctureBox System.Windows.Forms.PrintPreviewControl System.Windows.Forms.PrintPreviewControl System.Windows.Forms.ProgressBar System.Windows.Forms.ProgressBar System.Windows.Forms.ScrollableControl System.Windows.Forms.ScrollableControl System.Windows.Forms.ScrollBar System.Windows.Forms.ScrollBar Sys
41、tem.Windows.Forms.Splitter System.Windows.Forms.Splitter System.Windows.Forms.StatusBar System.Windows.Forms.StatusBar System.Windows.Forms.TabControl System.Windows.Forms.TabControl System.Windows.Forms.TextBoxBase System.Windows.Forms.TextBoxBase System.Windows.Forms.ToolBar System.Windows.Forms.T
42、oolBar System.Windows.Forms.TrackBar System.Windows.Forms.TrackBar System.Windows.Forms.TreeView System.Windows.Forms.TreeView System.Windows.Forms.WebBrowserBase System.Windows.Forms.WebBrowserBase27276.2 6.2 控件共有的基本操作控件共有的基本操作6.2.1 6.2.1 控件中常用的屬性和方法控件中常用的屬性和方法1-1-常用基本屬性常用基本屬性 除了書上講的屬性外,注意以下屬性的用法:除
43、了書上講的屬性外,注意以下屬性的用法:1) (Name)1) (Name):指定控件的名稱,它是控件在當(dāng)前應(yīng)用程序中的唯一:指定控件的名稱,它是控件在當(dāng)前應(yīng)用程序中的唯一標(biāo)識(shí),代碼通過(guò)該屬性來(lái)訪問(wèn)控件標(biāo)識(shí),代碼通過(guò)該屬性來(lái)訪問(wèn)控件2) Enabled2) Enabled:決定控件是否可用,取值為:決定控件是否可用,取值為truetrue時(shí)可用,取值為時(shí)可用,取值為falsefalse時(shí)不可用時(shí)不可用3 3)AnchorAnchor屬性屬性:保持控件與邊框的距離不變:保持控件與邊框的距離不變4 4)DockDock屬性屬性:讓控件始終緊靠邊框:讓控件始終緊靠邊框5 5)VisibleVisibl
44、e:決定控件是否顯示出來(lái):決定控件是否顯示出來(lái)6 6)TextText:控件上顯示的文本:控件上顯示的文本7 7)BackColorBackColor,F(xiàn)oreColorForeColor:前景色、背景色:前景色、背景色28286.2.1 6.2.1 控件中常用的屬性和方法控件中常用的屬性和方法【例例6-56-5】將圖像和文字疊加在同一幅背景圖上,讓其看起來(lái)將圖像和文字疊加在同一幅背景圖上,讓其看起來(lái)像是一幅圖。像是一幅圖。將窗體中將窗體中控件的背景色控件的背景色設(shè)置為設(shè)置為“TransparentTransparent”,則該控件相,則該控件相對(duì)于其父容器是透明的。對(duì)于其父容器是透明的。未設(shè)
45、置未設(shè)置BackColorBackColor屬性時(shí)的設(shè)計(jì)界面屬性時(shí)的設(shè)計(jì)界面 設(shè)置設(shè)置BackColorBackColor屬性后的界面效果屬性后的界面效果29296.2.1 6.2.1 控件中常用的屬性和方法控件中常用的屬性和方法2-2-布局工具欄使用:布局工具欄使用:(1 1)控件對(duì)齊:)控件對(duì)齊:按住按住鍵同時(shí)選中多個(gè)控件,然后利用鍵同時(shí)選中多個(gè)控件,然后利用“布局布局”快捷快捷工具欄中的快捷方式可以快速讓各工具欄中的快捷方式可以快速讓各控件對(duì)齊控件對(duì)齊。(2 2)焦點(diǎn):)焦點(diǎn):利用布局工具欄中的利用布局工具欄中的“鍵順序鍵順序”按鈕,可以在設(shè)計(jì)界按鈕,可以在設(shè)計(jì)界面下調(diào)整面下調(diào)整焦點(diǎn)焦點(diǎn)
46、順序。順序。30306.2.2 6.2.2 控件的錨定和??靠丶腻^定和??? 1AnchorAnchor屬性屬性k k 【AnchorAnchor】屬性定義控件的定位點(diǎn)位置(上屬性定義控件的定位點(diǎn)位置(上- -下下- -中中- -左左- -右)。右)。當(dāng)控件錨定到某個(gè)窗體時(shí),如果用戶調(diào)整該窗體的大小,當(dāng)控件錨定到某個(gè)窗體時(shí),如果用戶調(diào)整該窗體的大小,該控件將維持它與定位點(diǎn)位置之間的距離不變。該控件將維持它與定位點(diǎn)位置之間的距離不變。2. Dock2. Dock屬性屬性ddkk【DockDock】屬性的用途是使控件與窗體邊緣對(duì)齊。此屬性指定控屬性的用途是使控件與窗體邊緣對(duì)齊。此屬性指定控件在窗
47、體中的駐留位置。件在窗體中的駐留位置?!綝ockDock】屬性設(shè)置為下列值:屬性設(shè)置為下列值: LeftLeft停靠到窗體的左側(cè)。??康酱绑w的左側(cè)。 RightRight??康酱绑w的右側(cè)。??康酱绑w的右側(cè)。 TopTop??康酱绑w的頂部。??康酱绑w的頂部。 BottomBottom??康酱绑w底部。停靠到窗體底部。 FillFill占據(jù)窗體中的所有剩余空間。占據(jù)窗體中的所有剩余空間。 NoneNone 不在任何位置???,它顯示在由不在任何位置???,它顯示在由LocationLocation屬性指定的位置。屬性指定的位置。31316.2.3 6.2.3 控件的鼠標(biāo)事件和鍵盤事件控件的鼠標(biāo)事件和鍵盤
48、事件1.1.鼠標(biāo)事件鼠標(biāo)事件ClickClick 單擊鼠標(biāo)左鍵時(shí)觸發(fā),觸摸點(diǎn)擊單擊鼠標(biāo)左鍵時(shí)觸發(fā),觸摸點(diǎn)擊MouseDoubleClickMouseDoubleClick 雙擊鼠標(biāo)左鍵時(shí)觸發(fā)雙擊鼠標(biāo)左鍵時(shí)觸發(fā)MouseEnterMouseEnter 鼠標(biāo)進(jìn)入控件可見(jiàn)區(qū)域時(shí)觸發(fā)鼠標(biāo)進(jìn)入控件可見(jiàn)區(qū)域時(shí)觸發(fā)MouseMoveMouseMove 鼠標(biāo)在控件區(qū)域內(nèi)移動(dòng)時(shí)觸發(fā)鼠標(biāo)在控件區(qū)域內(nèi)移動(dòng)時(shí)觸發(fā)MouseLeaveMouseLeave 鼠標(biāo)離開(kāi)控件可見(jiàn)區(qū)域時(shí)觸發(fā)鼠標(biāo)離開(kāi)控件可見(jiàn)區(qū)域時(shí)觸發(fā)2.2.鍵盤事件鍵盤事件KeyDown KeyDown 按下鍵盤上某個(gè)鍵時(shí)觸發(fā)按下鍵盤上某個(gè)鍵時(shí)觸發(fā)KeyUp K
49、eyUp 釋放鍵盤上的按鍵時(shí)觸發(fā)釋放鍵盤上的按鍵時(shí)觸發(fā)KeyPress KeyPress 在在KeyDownKeyDown之后之后KeyUpKeyUp之前觸發(fā),非字符鍵不會(huì)之前觸發(fā),非字符鍵不會(huì)觸發(fā)該事件。觸發(fā)該事件。3232【例例6-66-6】演示鼠標(biāo)和鍵盤事件的觸發(fā)條件,觸發(fā)順序,并顯演示鼠標(biāo)和鍵盤事件的觸發(fā)條件,觸發(fā)順序,并顯示各個(gè)事件所傳遞的參數(shù)內(nèi)容。示各個(gè)事件所傳遞的參數(shù)內(nèi)容。設(shè)計(jì)界面如下:設(shè)計(jì)界面如下: 3333焦點(diǎn)事件:焦點(diǎn)事件: ValidatingValidating、ValidatedValidated、EnterEnter、LeaveLeave、GotFocusGotFo
50、cus和和LostFocusLostFocus事件都處理獲得焦點(diǎn)事件都處理獲得焦點(diǎn)( (或被激活或被激活) )和失去焦點(diǎn)的控和失去焦點(diǎn)的控件。件。 在用戶用在用戶用tabtab鍵選擇一個(gè)控件或用鼠標(biāo)選擇該控件時(shí),該控鍵選擇一個(gè)控件或用鼠標(biāo)選擇該控件時(shí),該控件就獲得了焦點(diǎn)。件就獲得了焦點(diǎn)。 EnterEnter、LeaveLeave、GotFocusGotFocus和和LostFocusLostFocus事件的功能似乎非常事件的功能似乎非常類似。類似。GotFocusGotFocus和和LostFocusLostFocus事件是低級(jí)事件,與事件是低級(jí)事件,與WindowsWindows消息消息W
51、M_SETFOCUSWM_SETFOCUS和和WM_KILLFOCUSWM_KILLFOCUS相關(guān)。一般應(yīng)盡可能使用相關(guān)。一般應(yīng)盡可能使用EnterEnter和和LeaveLeave事件。事件。3434 ValidatingValidating和和ValidatedValidated事件在驗(yàn)證控件時(shí)發(fā)生。這些事件事件在驗(yàn)證控件時(shí)發(fā)生。這些事件接收一個(gè)接收一個(gè)CancelEventArgsCancelEventArgs,利用該參數(shù),把,利用該參數(shù),把CancelCancel屬性設(shè)屬性設(shè)置為置為truetrue,就可以取消以后的事件。如果定制了驗(yàn)證代碼,就可以取消以后的事件。如果定制了驗(yàn)證代碼,而
52、且驗(yàn)證失敗,就可以把而且驗(yàn)證失敗,就可以把CancelCancel屬性設(shè)置為屬性設(shè)置為truetrue,且控件,且控件也不會(huì)失去焦點(diǎn)。也不會(huì)失去焦點(diǎn)。ValidatingValidating事件在驗(yàn)證過(guò)程中發(fā)生,事件在驗(yàn)證過(guò)程中發(fā)生,ValidatedValidated事件在驗(yàn)證過(guò)程后發(fā)生。這些事件的引發(fā)順序如事件在驗(yàn)證過(guò)程后發(fā)生。這些事件的引發(fā)順序如下:下: (1) Enter(1) Enter:在控件成為窗體的活動(dòng)控件時(shí)發(fā)生:在控件成為窗體的活動(dòng)控件時(shí)發(fā)生. . (2) Leave(2) Leave:在控件不再成為窗體的活動(dòng)控件時(shí)發(fā)生:在控件不再成為窗體的活動(dòng)控件時(shí)發(fā)生. . (3) Go
53、tFocus /(3) GotFocus /在控件接收焦點(diǎn)時(shí)發(fā)生在控件接收焦點(diǎn)時(shí)發(fā)生 (4) Validating(4) Validating:控件數(shù)據(jù)校驗(yàn)時(shí)發(fā)生:控件數(shù)據(jù)校驗(yàn)時(shí)發(fā)生 (5) Validated(5) Validated:數(shù)據(jù)校驗(yàn)完成后發(fā)生:數(shù)據(jù)校驗(yàn)完成后發(fā)生 (6) LostFocus(6) LostFocus:失去焦點(diǎn)時(shí)發(fā)生:失去焦點(diǎn)時(shí)發(fā)生3535 在操作中驗(yàn)證要驗(yàn)證控件的內(nèi)容,可以編寫代碼來(lái)處理在操作中驗(yàn)證要驗(yàn)證控件的內(nèi)容,可以編寫代碼來(lái)處理 Validating Validating 事件。如果控件的事件。如果控件的CausesValidation CausesVali
54、dation 屬性設(shè)屬性設(shè)置為置為 falsefalse,則將取消,則將取消 Validating Validating 和和 Validated Validated 事件。事件。如果在如果在 Validating Validating 事件委托中,事件委托中,CancelEventArgs CancelEventArgs 對(duì)象對(duì)象的的 Cancel Cancel 屬性設(shè)置為屬性設(shè)置為 truetrue,則正常情況下將在,則正常情況下將在 Validating Validating 事件之后發(fā)生的所有事件均被取消,并導(dǎo)致焦事件之后發(fā)生的所有事件均被取消,并導(dǎo)致焦點(diǎn)返回到控件。點(diǎn)返回到控件。 V
55、alidatingValidating事件是在用戶改變某個(gè)控件的事件是在用戶改變某個(gè)控件的某項(xiàng)值時(shí)激發(fā)的,比如改變某項(xiàng)值時(shí)激發(fā)的,比如改變TextBoxTextBox的的TextText。 GotFocus GotFocus 和和 LostFocus LostFocus 事件是關(guān)聯(lián)于事件是關(guān)聯(lián)于 WM_KILLFOCUS WM_KILLFOCUS 和和 WM_SETFOCUS Windows WM_SETFOCUS Windows 消息的低級(jí)別焦點(diǎn)事件。應(yīng)對(duì)所有消息的低級(jí)別焦點(diǎn)事件。應(yīng)對(duì)所有控件使用控件使用 Enter Enter 和和 Leave Leave 事件。事件。 36366.3 6
56、.3 容器類控件和常用控件容器類控件和常用控件1 1、分組控件(、分組控件(PanelPanel、GroupBoxGroupBox) Panel Panel控件和控件和GroupBoxGroupBox控件用于對(duì)不同的控件進(jìn)行分組??丶糜趯?duì)不同的控件進(jìn)行分組。 Panel Panel控件不顯示標(biāo)題但可以有滾動(dòng)條,而控件不顯示標(biāo)題但可以有滾動(dòng)條,而GroupBoxGroupBox可顯示可顯示標(biāo)題,不顯示滾動(dòng)條。標(biāo)題,不顯示滾動(dòng)條。2 2、工具提示控件(、工具提示控件(ToolTipToolTip) ToolTip ToolTip組件用于在用戶指向控件時(shí)顯示相應(yīng)的提示信息。組件用于在用戶指向控件時(shí)
57、顯示相應(yīng)的提示信息。3 3、錯(cuò)誤提示組件(、錯(cuò)誤提示組件(ErrorProviderErrorProvider) ErrorProvider ErrorProvider組件可以對(duì)窗體或控件上的用戶輸入進(jìn)行驗(yàn)組件可以對(duì)窗體或控件上的用戶輸入進(jìn)行驗(yàn)證。證。3737TimerTimer類類 TimerTimer類主要用于設(shè)置某個(gè)時(shí)間間隔,并在每次到達(dá)設(shè)置的類主要用于設(shè)置某個(gè)時(shí)間間隔,并在每次到達(dá)設(shè)置的時(shí)間間隔時(shí),觸發(fā)指定的事件。時(shí)間間隔時(shí),觸發(fā)指定的事件。 .NETFramework .NETFramework 類庫(kù)提供了三個(gè)不同的類庫(kù)提供了三個(gè)不同的timertimer類:類:lSystem.Wi
58、ndows.Forms.TimerSystem.Windows.Forms.TimerlSystem,Timers.TimerSystem,Timers.TimerlSystem.Threading.TimerSystem.Threading.Timer 每個(gè)每個(gè)TimerTimer類被設(shè)計(jì)優(yōu)化用于不同的場(chǎng)合。類被設(shè)計(jì)優(yōu)化用于不同的場(chǎng)合。3838(1 1)System.Windows.Forms.TimerSystem.Windows.Forms.Timer(TimerTimer組件)組件) 用用System.Windows.Forms.TimerSystem.Windows.Forms.Ti
59、mer計(jì)時(shí)器最宜用于計(jì)時(shí)器最宜用于 Windows Windows 窗體應(yīng)用程序中,并且必須在窗口中使用。窗體應(yīng)用程序中,并且必須在窗口中使用。 StartStart和和StopStop方法:?jiǎn)?dòng)、關(guān)閉計(jì)時(shí)方法:?jiǎn)?dòng)、關(guān)閉計(jì)時(shí) IntervalInterval屬性:觸發(fā)事件屬性:觸發(fā)事件TickTick()的時(shí)間間隔()的時(shí)間間隔 TickTick事件:事件:每當(dāng)每當(dāng) Enabled Enabled 屬性設(shè)置為屬性設(shè)置為 true true 且且 Interval Interval 屬性大于屬性大于 0 0 時(shí),將引發(fā)時(shí),將引發(fā) Tick Tick 事件,引發(fā)的時(shí)間間隔基于事件,引發(fā)的時(shí)間間隔
60、基于 Interval Interval 屬性設(shè)置屬性設(shè)置。 Windows Windows 計(jì)時(shí)器是為單線程環(huán)境設(shè)計(jì)的,其中,計(jì)時(shí)器是為單線程環(huán)境設(shè)計(jì)的,其中,UI UI 線程用線程用于執(zhí)行處理。它要求用戶代碼有一個(gè)可用的于執(zhí)行處理。它要求用戶代碼有一個(gè)可用的 UI UI 消息泵,而消息泵,而且總是在同一個(gè)線程中操作。且總是在同一個(gè)線程中操作。 Windows Windows 窗體窗體 Timer Timer 組件是單線程組件,精度限定為組件是單線程組件,精度限定為 55 55 毫秒。毫秒。3939(2 2)System.Timers.TimerSystem.Timers.Timer Sys
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湖北電力建設(shè)第一工程公司招聘筆試參考題庫(kù)含答案解析
- 2025-2030全球叉車機(jī)器人行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)太陽(yáng)能背板用氟聚合物薄膜行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球連續(xù)循環(huán)洗瓶機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 社交網(wǎng)絡(luò)環(huán)境下學(xué)生的信息安全管理培訓(xùn)
- 科技助力下的教育創(chuàng)新與教師成長(zhǎng)
- 二零二五年度成都房屋租賃合同(含租客租賃合同續(xù)租及租金調(diào)整)4篇
- 科技賦能下的家庭養(yǎng)老服務(wù)創(chuàng)新
- 提升孩子網(wǎng)絡(luò)安全意識(shí)家庭教育的責(zé)任與擔(dān)當(dāng)
- 科技賦能加速對(duì)公業(yè)務(wù)數(shù)字化轉(zhuǎn)型的路徑探討
- (完整版)高考英語(yǔ)詞匯3500詞(精校版)
- 我的家鄉(xiāng)瓊海
- (2025)專業(yè)技術(shù)人員繼續(xù)教育公需課題庫(kù)(附含答案)
- 《互聯(lián)網(wǎng)現(xiàn)狀和發(fā)展》課件
- 【MOOC】計(jì)算機(jī)組成原理-電子科技大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年部編版八年級(jí)語(yǔ)文上冊(cè)電子課本(高清版)
- 2024年上海健康醫(yī)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 2024年湖北省武漢市中考語(yǔ)文適應(yīng)性試卷
- 2024-2025學(xué)年廣東省大灣區(qū)40校高二上學(xué)期聯(lián)考英語(yǔ)試題(含解析)
- 非新生兒破傷風(fēng)診療規(guī)范(2024年版)解讀
- 2024-2030年電炒鍋?lái)?xiàng)目融資商業(yè)計(jì)劃書
評(píng)論
0/150
提交評(píng)論