




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、主 編 魯 立 張松慧中國(guó)水利水電出版社Windows窗體應(yīng)用程序也是面向?qū)ο缶幊碳夹g(shù)的一個(gè)重要組成部分。在包含豐富圖形用戶界面的應(yīng)用程序開發(fā)中,使用可視化的Windows窗體編程會(huì)更加方便,而且它具有友好的交互功能。本章我們來給大家詳細(xì)介紹Windows窗體編程的方法。Windows窗體應(yīng)用程序的創(chuàng)建和使用都很容易掌握。本節(jié)我們來講解使用Microsoft Visual Studio 2010集成開發(fā)環(huán)境創(chuàng)建Windows窗體應(yīng)用程序Chapter22的方法,以及該Windows窗體應(yīng)用程序的起始點(diǎn)、配置信息等。依次選擇“開始”|“所有程序”|“Microsoft Visual Studio
2、 2010”|“Microsoft Visual Studio 2010”命令,打開“起始頁(yè)-Microsoft Visual Studio”窗口。單擊“最近項(xiàng)目”面板中的“創(chuàng)建”下的“項(xiàng)目”鏈接,彈出“新建項(xiàng)目”對(duì)話框,并執(zhí)行以下具體步驟。(1)設(shè)置應(yīng)用程序的版本為.NET Framework 4.0,即選中中間左上部.NET Framework 4.0列表項(xiàng)。(2)設(shè)置應(yīng)用程序的模板為Windows 窗體應(yīng)用程序。(3)設(shè)置應(yīng)用程序的名稱為Chapter22。(4)設(shè)置應(yīng)用程序的位置為默認(rèn)位置。(5)設(shè)置應(yīng)用程序的解決方案為“創(chuàng)建新解決方案”,并選中“為解決方案創(chuàng)建目錄”復(fù)選框。(6)設(shè)置
3、應(yīng)用程序的解決方案名稱為Chapter22。(7)單擊“確定”按鈕即可創(chuàng)建名稱為Chapter22的Windows窗體應(yīng)用程序。應(yīng)用程序起始點(diǎn)的信息存放在Program.cs文件中。雙擊“解決方案資源管理器”面板中的Program.cs節(jié)點(diǎn),打開Program.cs文件。用來配置程序集信息的相關(guān)內(nèi)容存放在文件AssemblyInfo.cs中。首先展開“解決方案資源管理器”面板中的Properties節(jié)點(diǎn),然后雙擊AssemblyInfo.cs節(jié)點(diǎn)打開AssemblyInfo.cs文件??丶且唤M可以直接通過拖拉來被重用的類庫(kù)。Windows窗體開發(fā)時(shí)可以使用豐富的控件,通過控件的使用可以給用戶
4、提供強(qiáng)大的功能??丶?zhí)行OnPaint(PainEventArgs e)方法,把結(jié)果展示在窗體上。.NET Framework的工具箱中封裝了很多控件供編程者使用,如按鈕控件、單選框控件、復(fù)選框控件等等。本節(jié)我們來學(xué)習(xí)Windows窗體編程的各種基本控件。標(biāo)簽控件主要用于顯示用戶不能編輯的文本,如標(biāo)題或提示等。它可以作為基本信息的載體,也可以作為復(fù)雜信息的呈現(xiàn)體。標(biāo)簽控件不能接收焦點(diǎn),但是可以作為其他控件的訪問鍵。標(biāo)簽通過使用類Label來實(shí)現(xiàn)?!臼纠?-1】下面創(chuàng)建一個(gè)標(biāo)簽控件,其Name屬性的值為lb,它將顯示“這是一個(gè)標(biāo)簽控件”的文本。Label lb = new Label(); /創(chuàng)
5、建一個(gè)標(biāo)簽控件lb.Text = 這是一個(gè)標(biāo)簽控件;通過標(biāo)簽控件的TextAlign屬性,開發(fā)人員可以設(shè)置文本在標(biāo)簽內(nèi)的對(duì)齊方式。圖片框控件主要用來顯示圖片,圖片格式可為位圖、GIF、JPEG、圖元文件或圖標(biāo)。它顯示的圖片由Image屬性或ImageLocation屬性指定?!臼纠?-2】下面創(chuàng)建一個(gè)圖片框控件,其Name屬性的值為pb,它將顯示地址為E:1.jpg的圖片。PictureBox pb = new PictureBox(); /創(chuàng)建一個(gè)圖片框控件pb.ImageLocation = E:1.jpg;運(yùn)行MainForm.cs窗體之后,單擊“瀏覽”按鈕可以設(shè)置pb控件顯示的圖片。文
6、本框(TextBox)和富文本框(RichTextBox)都用來獲取用戶輸入或顯示文本。其中,文本框控件一般用于輸入比較簡(jiǎn)單的信息,例如用戶名和密碼;而富文本框則用于輸入比較復(fù)雜的信息,例如評(píng)論或文章。通過Text屬性可以獲取或設(shè)置文本框的輸入或顯示的文本?!臼纠?-3】下面創(chuàng)建一個(gè)文本框控件,其Name屬性的值為tb,它將顯示“這是一個(gè)文本框”文本。TextBox tb = new TextBox(); /創(chuàng)建一個(gè)文本框控件tb.Text = 這是一個(gè)文本框;【示例22-4】下面創(chuàng)建一個(gè)富文本框控件,其Name屬性的值為rtb,它將顯示“這是一個(gè)富文本框”文本。RichTextBox rtb
7、 = new RichTextBox(); /創(chuàng)建一個(gè)富文本框控件rtb.Text = 這是一個(gè)富文本框;按鈕控件主要用于提交用戶的請(qǐng)求。當(dāng)用戶單擊按鈕,就調(diào)用該按鈕的單擊事件作出相應(yīng)的操作。按鈕可通過Text屬性和Image、ImageList屬性分別設(shè)置顯示的文本和圖像?!臼纠?-5】下面創(chuàng)建一個(gè)按鈕控件,其Name屬性的值為btn,它將顯示“瀏覽”文本。Button btn = new Button(); /創(chuàng)建一個(gè)按鈕控件btn.Text = 瀏覽;【示例6-6】下面為Name屬性的值為btnBrowserPic的按鈕(MainForm.cs窗體中的“瀏覽”按鈕)設(shè)計(jì)了Click事件b
8、tnBrowserPic_Click(object sender,EventArgs e)。該事件首先打開“打開”對(duì)話框(第22.4.3節(jié)介紹),用戶可以從該對(duì)話框中選擇一張圖片,并在pb控件中顯示該圖片。程序代碼如下:01private void btnBrowserPic_Click(object sender,EventArgs e)02 /創(chuàng)建瀏覽文件對(duì)話框的實(shí)例03 OpenFileDialog ofd = new OpenFileDialog();04 /打開對(duì)話框05 if(ofd.ShowDialog() = DialogResult.OK)06 /獲取文件的全路徑07 pb.
9、ImageLocation = ofd.FileName;08 09單項(xiàng)按鈕是在用戶提供的兩個(gè)或多個(gè)互斥選項(xiàng)組成的選項(xiàng)集中選擇一個(gè)選項(xiàng)。它由RadioButton類實(shí)現(xiàn)。復(fù)選框是用來指定某個(gè)條件是打開的還是關(guān)閉的,它由CheckBox類實(shí)現(xiàn)。對(duì)于同一組內(nèi)的單項(xiàng)按鈕,用戶一次只能選擇一個(gè);而同一組的復(fù)選框,用戶可以選擇一個(gè)或多個(gè)。注意:?jiǎn)雾?xiàng)按鈕和復(fù)選框最大區(qū)別在于在單項(xiàng)按鈕組中,用戶一次只能選擇一個(gè)單項(xiàng)按鈕。但是在復(fù)選框組中,用戶可以選擇任意數(shù)量的復(fù)選框。在Windows窗體開發(fā)中,窗體用于向用戶展示信息。通過編寫各種事件響應(yīng)的代碼,可以響應(yīng)用戶的各種操作,比如鼠標(biāo)點(diǎn)擊操作。本節(jié)我們來介紹設(shè)計(jì)M
10、ainForm.cs窗體的方法,包括配置窗體的屬性、添加控件、創(chuàng)建新窗口等。窗體也有自己的屬性,我們可以通過以下方式來設(shè)置。打開“解決方案資源管理器”面板,并將Form1.cs節(jié)點(diǎn)重命名為MainForm.cs節(jié)點(diǎn)。雙擊該節(jié)點(diǎn)打開MainForm.cs窗體的設(shè)計(jì)界面。單擊MainForm.cs窗體,“屬性”面板將顯示該窗體的各種屬性及其值。開發(fā)人員還可以通過“屬性”面板配置該窗體的各種屬性。在此,筆者將MainForm.cs窗體的Name屬性的值設(shè)置為MainForm、Text屬性的值設(shè)置為“Windows窗體編程”。MainForm窗體創(chuàng)建好了后,就可以在它上面添加控件,比如文本框、圖片框等
11、。選擇“工具箱”中的某一個(gè)控件,并直接拖放到MainForm.cs窗體之上,就可以把該控件添加到MainForm.cs窗體。在此,筆者向MainForm.cs窗體添加了多個(gè)控件,并設(shè)置了相應(yīng)的事件,具體說明如下表所示。注意:MainForm.cs窗體添加了多個(gè)Label控件用來顯示文本(如“名稱:”、“照片:”、“簡(jiǎn)介:”等),上表未列舉這些控件。序號(hào)控 件 類 型Name屬性Text屬性事 件1TextBoxtbName2PictureBoxpb3ButtonbtnBrowserPic瀏覽btnBrowserPic_Click(object sender,EventArgs e)4RichT
12、extBoxrtbDesn5ComboBoxcbAge6ListBoxlboxRole7RadioButtonrbMale男8RadioButtonrbFemale女9CheckBoxcb1唱歌cb_CheckedChanged(object sender,EventArgs e)10CheckBoxcb2跳舞cb_CheckedChanged(object sender,EventArgs e)11CheckBoxcb3運(yùn)動(dòng)cb_CheckedChanged(object sender,EventArgs e)12CheckBoxcb4學(xué)習(xí)cb_CheckedChanged(object s
13、ender,EventArgs e)13ListViewlvLove14TreeViewtv創(chuàng)建等待對(duì)話框是創(chuàng)建一個(gè)新窗體,它用作等待對(duì)話框。下面介紹創(chuàng)建等待對(duì)話框(由WaittingForm.cs窗體實(shí)現(xiàn))的具體步驟。(1)右擊“解決方案資源管理器”面板中的Chapter22節(jié)點(diǎn),依次選擇“添加”|“Windows窗體”命令。(2)單擊“Windows窗體”命令打開“添加新項(xiàng)-Chapter22”對(duì)話框。(3)選擇“Windows窗體”圖標(biāo),并設(shè)置名稱為WaittingForm.cs。(4)單擊“添加”按鈕,即可將WaittingForm.cs窗體添加到Chapter22應(yīng)用程序中。(5)添
14、加WaittingForm.cs窗體之后,設(shè)計(jì)該窗體的FormBorderStyle屬性的值為None、BackColor屬性的值為ControlLight。并在窗體上使用Label控件顯示“主窗口正在加載數(shù)據(jù),請(qǐng)等待”文本。添加窗體事件是指給窗體添加相應(yīng)的事件代碼,使得窗體一運(yùn)行就執(zhí)行相應(yīng)的操作。打開MainForm.cs窗體的設(shè)計(jì)界面,并雙擊該窗體就可以為該窗體添加MainForm_Load(object sender, EventArgs e)事件。當(dāng)系統(tǒng)加載MainForm.cs窗體時(shí),將觸發(fā)該事件。該事件的具體實(shí)現(xiàn)步驟如下:(1)創(chuàng)建WaittingForm.cs窗體的實(shí)例waitt
15、ing。(2)調(diào)用Show()方法顯示W(wǎng)aittingForm.cs窗體。(3)設(shè)置WaittingForm.cs窗體為當(dāng)前活動(dòng)窗體。(4)調(diào)用Application類的DoEvents()方法處理應(yīng)用程序的消息。(5)調(diào)用Thread類的Sleep()延時(shí)5秒鐘。(6)關(guān)閉WaittingForm.cs窗體,并釋放waitting實(shí)例的資源。(7)最終,顯示MainForm.cs窗體。注意:當(dāng)Chapter22應(yīng)用程序運(yùn)行之后,首先顯示一個(gè)等待窗口(WaittingForm.cs窗體),直到該等待窗口消失之后,才顯示該應(yīng)用程序的主窗口(MainForm.cs窗體)。對(duì)話框是FormBorde
16、rStyle屬性為FixedDialog的窗體,主要用于與用戶交互和檢索信息。Windows應(yīng)用程序最為常用的對(duì)話框有5種:顏色對(duì)話框、字體對(duì)話框、打開文件對(duì)話框、保存文件對(duì)話框和目錄瀏覽對(duì)話框。本節(jié)我們來學(xué)習(xí)這幾種常用的對(duì)話框。顏色對(duì)話框是用來實(shí)現(xiàn)選擇顏色的功能。它由Windows窗體ColorDialog組件實(shí)現(xiàn),它是一個(gè)預(yù)先設(shè)置的對(duì)話框。用戶可以從該對(duì)話框的調(diào)色板中選擇顏色,以及將自定義顏色添加到該調(diào)色板。注意:如果要顯示該對(duì)話框,則必須調(diào)用該組件的ShowDialog()方法。顏色對(duì)話框包括7個(gè)常用屬性,如獲取顏色對(duì)話框中選擇的顏色的Color屬性、禁用“定義自定義顏色”按鈕的Allo
17、wFullOpen屬性等。這些常用屬性的具體說明如下表所示。屬 性描 述屬 性描 述Color用戶選定的顏色FullOpen指示用于創(chuàng)建自定義顏色的控件是否可見AnyColor指示是否顯示基本顏色集中可用的所有顏色ShowHelp指示是否顯示“幫助”按鈕CustomColors自定義顏色集SolidColorOnly指示是否限制用戶只選擇純色AllowFullOpen指示用戶是否可以使用自定義顏色用戶單擊“設(shè)置顏色”按鈕,可以彈出“顏色”對(duì)話框。該功能由“設(shè)置顏色”按鈕(btnColor控件)的btnColor_Click(object sender, EventArgs e)事件實(shí)現(xiàn)。具體步
18、驟如下: 創(chuàng)建ColorDialog類的實(shí)例cd。 調(diào)用cd實(shí)例的ShowDialog()方法顯示顏色對(duì)話框。 把lbMessage控件的文本顏色設(shè)置為用戶選擇的顏色(即cd實(shí)例的Color屬性的值)。在“對(duì)話框”對(duì)話框中,單擊“設(shè)置顏色”按鈕可以彈出“顏色”對(duì)話框,并選擇顏色。單擊“確定”按鈕,關(guān)閉“顏色”對(duì)話框。此時(shí),lbMessage控件中的文本的顏色已經(jīng)改變。字體對(duì)話框主要用來設(shè)置字體、大小、顏色等。它由Windows窗體ColorDialog組件實(shí)現(xiàn),它也是一個(gè)預(yù)先設(shè)置的對(duì)話框。用戶可以從該對(duì)話框中選擇系統(tǒng)上當(dāng)前安裝的字體。字體對(duì)話框包括5個(gè)常用屬性,具體說明如下表所示。屬 性描 述
19、屬 性描 述Font用戶選定的字體MinSize用戶可選擇的最小磅值Color用戶選定的字體顏色ShowHelp指示是否顯示“幫助”按鈕MaxSize用戶可選擇的最大磅值用戶單擊“設(shè)置字體”按鈕,可以彈出“字體”對(duì)話框。該功能由“設(shè)置字體”按鈕(btnFont控件)的btnFont_Click(object sender, EventArgs e)事件實(shí)現(xiàn)。具體步驟如下: 創(chuàng)建FontDialog類的實(shí)例fd。 調(diào)用fd實(shí)例的ShowDialog()方法顯示顏色對(duì)話框。 把lbMessage控件的文本字體設(shè)置為用戶選擇的字體(即fd實(shí)例的Font屬性的值)。在“對(duì)話框”對(duì)話框中,單擊“設(shè)置字體
20、”按鈕可以彈出“字體”對(duì)話框,并選擇字體為“粗斜體”選項(xiàng)。單擊“確定”按鈕,關(guān)閉“字體”對(duì)話框。此時(shí),lbMessage控件中的文本的字體已經(jīng)改變。打開文件對(duì)話框由Windows窗體OpenFileDialog組件實(shí)現(xiàn),它也是預(yù)先配置的對(duì)話框。它與Windows使用的標(biāo)準(zhǔn)“保存文件”對(duì)話框相同。打開文件對(duì)話框包括5個(gè)常用屬性,具體說明如下表所示。屬 性描 述屬 性描 述Multiselect是否允許選擇多個(gè)文件SafeFileNames所有選定文件的文件名和擴(kuò)展名的數(shù)組ReadOnlyChecked是否選定只讀復(fù)選框ShowReadOnly是否包含只讀復(fù)選框SafeFileName所選文件的文
21、件名和擴(kuò)展名用戶單擊“瀏覽文件”按鈕可以彈出“打開”對(duì)話框,該功能由“瀏覽文件”按鈕(btnFile控件)的btnFile_Click(object sender,EventArgs e)事件實(shí)現(xiàn)。具體步驟如下:(1)創(chuàng)建OpenFileDialog類的實(shí)例ofd。(2)設(shè)置ofd實(shí)例的Filter屬性的值為“文本文件(*.txt)|*.txt|All files(*.*)|*.*”,即只選擇文本文件。(3)設(shè)置ofd實(shí)例的默認(rèn)擴(kuò)展名為txt,即默認(rèn)類型為文本文件。(4)調(diào)用ofd實(shí)例的ShowDialog()方法顯示打開文件對(duì)話框。(5)在tbFile控件中顯示被打開文件的路徑(即ofd實(shí)例
22、的FileName屬性的值)。在“對(duì)話框”對(duì)話框中,單擊“瀏覽文件”按鈕可以彈出“打開”對(duì)話框,并選擇“新建 文本文件” 。單擊“打開”按鈕,關(guān)閉“打開”對(duì)話框。此時(shí),tbFile控件顯示被打開文件的路徑。保存文件對(duì)話框由Windows窗體SaveFileDialog組件實(shí)現(xiàn),它與Windows使用的標(biāo)準(zhǔn)“保存文件”對(duì)話框相同。保存文件對(duì)話框包括2個(gè)常用屬性,具體說明如下表所示。屬 性描 述 CreatePrompt 如果用戶指定不存在的文件,對(duì)話框是否提示用戶允許創(chuàng)建該文件 OverwritePrompt 如果用戶指定的文件名已存在,保存文件對(duì)話框是否顯示警告用戶單擊“保存為”按鈕可以彈出“
23、另存為”對(duì)話框,該功能由“保存為”按鈕(btnSave控件)的btnSave_Click(object sender,EventArgs e)事件實(shí)現(xiàn)。具體步驟如下:(1)創(chuàng)建SaveFileDialog類的實(shí)例sfd。(2)設(shè)置sfd實(shí)例的Filter屬性的值為“文本文件(*.txt)|*.txt|All files(*.*)|*.*”,即只選擇文本文件。(3)設(shè)置sfd實(shí)例的默認(rèn)擴(kuò)展名為“txt”,即默認(rèn)類型為文本文件。(4)調(diào)用sfd實(shí)例的ShowDialog()方法顯示保存文件對(duì)話框。(5)打開用戶所選擇的文件,并保存為fs變量(類型為FileStream)。(6)讀取rtbMessa
24、ge控件的內(nèi)容,并轉(zhuǎn)換為元素類型為byte類型的數(shù)組data。(7)調(diào)用fs實(shí)例的Write()方法將data數(shù)組的內(nèi)容寫入到用戶選擇的文件。(8)關(guān)閉fs實(shí)例。在“對(duì)話框”對(duì)話框中,單擊“保存為”按鈕可以彈出“另存為”對(duì)話框,并選擇“新建 文本文件”文本文件。單擊“保存”按鈕,彈出對(duì)話框。該對(duì)話框詢問用戶是否要替換已存在的文件。如果單擊“是”按鈕,將替換被選擇的文件。否則,取消這次保存文件的操作。目錄瀏覽對(duì)話框用來顯示一個(gè)用于瀏覽和選擇文件夾的模式對(duì)話框。它由Windows窗體FolderBrowserDialog組件實(shí)現(xiàn)。目錄瀏覽對(duì)話框的常用屬性具體說明如下表所示。屬 性描 述Select
25、edPath用戶選定的路徑ShowNewFolderButton指示是否顯示“新建文件夾”按鈕Description對(duì)話框中在樹視圖控件上顯示的說明文本RootFolder從其開始瀏覽的根文件夾用戶單擊“目錄瀏覽”按鈕,可以彈出“瀏覽文件夾”對(duì)話框。該功能由“目錄瀏覽”按鈕(btnFolder控件)的btnFolder_Click (object sender, EventArgs e) 事件實(shí)現(xiàn)。具體步驟如下:(1)創(chuàng)建FolderBrowserDialog類的實(shí)例fbd。(2)調(diào)用fbd實(shí)例的ShowDialog()方法顯示瀏覽文件夾對(duì)話框。(3)tbFolder控件顯示用戶所選文件夾的路
26、徑(即fbd實(shí)例的SelectedPath屬性的值)。在“對(duì)話框”對(duì)話框中,單擊“目錄瀏覽”按鈕可以彈出“瀏覽文件夾”對(duì)話框,并選擇“桌面”圖標(biāo)。單擊“確定”按鈕,關(guān)閉“瀏覽文件夾”對(duì)話框。此時(shí),tbFolder控件顯示用戶所選文件夾的路徑。對(duì)話框窗體用于與用戶交互和檢索信息。此處,筆者用DialogForm.cs窗體實(shí)現(xiàn)。DialogForm.cs窗體的標(biāo)題為“對(duì)話框”,該窗體包括1個(gè)Label控件、2個(gè)TextBox控件、1個(gè)RichTextBox控件和5個(gè)Button控件。具體說明如下表所示。序號(hào)控 件 類 型Name屬性Text屬性事 件1LabellbMessage這是一段文本:我喜
27、歡C#語言2TextBoxtbFile3TextBoxtbFolder4RichTextBoxrtbMessage5ButtonbtnColor設(shè)置顏色btnColor_Click(object sender,EventArgs e)6ButtonbtnFont設(shè)置字體b t n F o n t _ C l i c k ( o b j e c t sender,EventArgs e)7ButtonbtnFile瀏覽文件b t n F i l e _ C l i c k ( o b j e c t sender,EventArgs e)8ButtonbtnSave保存為btnSave_Clic
28、k(object sender, EventArgs e)9ButtonbtnFolder瀏覽目錄btnFolder_Click(object sender,EventArgs e)運(yùn)行Chapter22 Windows窗體應(yīng)用程序之后,選擇“對(duì)話框”命令,可打開“對(duì)話框”對(duì)話框(DialogForm.cs窗體)。容器是指在這些控件上面可以放置其他控件。Windows系統(tǒng)中有三個(gè)常用的容器控件:面板、組合框和選項(xiàng)卡。本節(jié)我們來學(xué)習(xí)這三種容器控件。面板(Panel)控件用于為其他控件提供可識(shí)別的分組。開發(fā)Windows應(yīng)用程序時(shí),通常使用面板控件按功能細(xì)分窗體。在窗體設(shè)計(jì)時(shí),所有控件都可以自由移
29、動(dòng),當(dāng)移動(dòng)面板時(shí),它包含的所有控件也將隨著移動(dòng)。默認(rèn)情況下,面板控件不顯示任何邊框。如果要顯示邊框,則需要設(shè)置其BorderStyle屬性的值。特別地,面板控件不顯示標(biāo)題。面板控件包括以下3個(gè)常用屬性。AutoSizeMode屬性:指定控件的自動(dòng)調(diào)整大小行為。BorderStyle屬性:指定控件的邊框樣式。 TabStop屬性:指定用戶能否使用Tab鍵將焦點(diǎn)放到該控件上?!臼纠?-7】下面創(chuàng)建一個(gè)面板控件,它的Name屬性的值為pLeft,Dock屬性的值為DockStyle.Left,寬度和高度分別為228和266。01 System.Windows.Forms.Panel pLeft =
30、new System.Windows.Forms.Panel();02 pLeft.Name = pLeft;03 pLeft.Dock = System.Windows.Forms.DockStyle.Left;04 pLeft.Size = new System.Drawing.Size(228,266);05 pLeft.Location = new System.Drawing.Point(0,0); /設(shè)置起始位置06 pLeft.TabIndex = 0; /設(shè)置TabIndex屬性的值組合框控件是C#中用來組織其他控件形成一個(gè)控件組。當(dāng)組合框移動(dòng)時(shí),該控件組同時(shí)移動(dòng),不會(huì)產(chǎn)生其他
31、的位移。組合框控件最典型的用途是用作一組單項(xiàng)按鈕的容器,并指定為一個(gè)邏輯組,組內(nèi)的單項(xiàng)按鈕互相排斥。組合框控件包括以下8個(gè)常用屬性。AllowDrop屬性:指定控件是否允許使用拖放操作和事件。AutoSize屬性:指定控件是否根據(jù)其內(nèi)容調(diào)整大小。AutoSizeMode屬性:當(dāng)控件啟用AutoSize屬性時(shí),指定控件的行為方式。DisplayRectangle屬性:獲取控件的維度的矩形。FlatStyle屬性:獲取或設(shè)置控件的平面樣式外觀。TabStop屬性:指定用戶能否使用Tab鍵將焦點(diǎn)放到該控件上。Text屬性:控件的標(biāo)題。UseCompatibleTextRendering屬性:指定是否
32、使用了兼容文本呈現(xiàn)控件的標(biāo)題。【示例6-8】下面創(chuàng)建一個(gè)組合框控件,它的Name屬性的值為gbMain,Dock屬性的值為DockStyle.Fill,寬度和高度分別為224和266。01 System.Windows.Forms.GroupBox gbMain = new 02 System.Windows.Forms.GroupBox();03 gbMain.Name = gbMain;04 gbMain.Text = 選項(xiàng):; /設(shè)置控件的標(biāo)題05 gbMain.Dock = System.Windows.Forms.DockStyle.Fill;06 gbMain.Location =
33、 new System.Drawing.Point(0,0); /設(shè)置起始位置07 gbMain.Size = new System.Drawing.Size(224,266);08 gbMain.TabIndex = 0; /設(shè)置TabIndex屬性的值09 gbMain.TabStop = false;注意:組合框控件和面板控件的最大區(qū)別在于組合框控件可以顯示標(biāo)題,而面板控件可以顯示滾動(dòng)條。TabControl控件主要用于窗體內(nèi)容比較多的場(chǎng)合,通過一個(gè)個(gè)的“標(biāo)簽”分門別類的顯示不同的內(nèi)容。通過右擊TabControl控件即可添加或刪除選項(xiàng)卡。TabControl控件包括以下3個(gè)常用屬性。S
34、electedIndex屬性:當(dāng)前選定的選項(xiàng)卡頁(yè)的索引。 SelectedTab屬性:當(dāng)前選定的選項(xiàng)卡頁(yè)。TabPages屬性:TabControl控件中選項(xiàng)卡頁(yè)的集合。注意:調(diào)用選項(xiàng)卡頁(yè)的Hide()方法不能夠隱藏選項(xiàng)卡。若要隱藏選項(xiàng)卡,則必須從TabControl控件的TabPages集合中隱藏該選項(xiàng)卡頁(yè)控件。容器窗體是在容器控件上添加別的控件。在此,筆者用ContainForm.cs窗體實(shí)現(xiàn),介紹了面板、組合框、選項(xiàng)卡等控件的使用方法。該窗體的標(biāo)題為“容器”,它包括1個(gè)TabControl控件、3個(gè)Tabpage、1個(gè)TextBox控件、1個(gè)RichTextBox控件、1個(gè)Picture
35、Box、1個(gè)GroupBox、3個(gè)RadioButton和2個(gè)Panel控件。具體說明如下表所示。序號(hào)控 件 類 型Name屬性Text屬性事 件1TabControltctc_SelectedIndexChanged(object sender,EventArgs e)2TabPagetp13TabPagetp24TabPagetp35TextBoxTextBox16RichTextBoxRichTextBox17PictureBoxpb8GroupBoxgbMain9RadioButtonrb1rb_CheckedChanged(object sender,EventArgs e)10Ra
36、dioButtonrb2rb_CheckedChanged(object sender,EventArgs e)11RadioButtonrb3rb_CheckedChanged(object sender,EventArgs e)12PanelpLeft13PanelpMain運(yùn)行Chapter22 Windows窗體應(yīng)用程序之后,單擊“容器”命令即可打開“容器”對(duì)話框(ContainForm.cs窗體)。選擇“選項(xiàng)卡二”單選按鈕或者“選項(xiàng)卡二”選項(xiàng)卡,“容器”對(duì)話框有相應(yīng)變化。選擇“選項(xiàng)卡三”單選按鈕或者“選項(xiàng)卡三”選項(xiàng)卡,“容器”對(duì)話框有相應(yīng)變化。當(dāng)用戶選擇“選項(xiàng)卡一”或“選項(xiàng)卡二”或“
37、選項(xiàng)卡三”單選按鈕時(shí),都觸發(fā)rb_CheckedChanged(object sender, EventArgs e)事件。該事件將當(dāng)前選項(xiàng)卡設(shè)置為與被單選按鈕相對(duì)應(yīng)的選項(xiàng)卡(選項(xiàng)卡的名稱和單選按鈕的文本相同),具體步驟如下:(1)使用foreach語句處理pMain控件的所有子控件。(2)如果當(dāng)前控件的類型為RadioButton控件,則獲取該控件,并保存為rb變量。(3)如果rb控件被選中,則設(shè)置與該控件相對(duì)應(yīng)的選項(xiàng)卡。當(dāng)用戶選擇“選項(xiàng)卡一”或“選項(xiàng)卡二”或“選項(xiàng)卡三”選項(xiàng)卡時(shí),都觸發(fā)tc_SelectedIndexChanged(object sender, EventArgs e)事件
38、。該事件將當(dāng)前單選按鈕設(shè)置為與選項(xiàng)卡相對(duì)應(yīng)的單選按鈕(單選按鈕的文本和選項(xiàng)卡的名稱相同),具體步驟如下:使用foreach語句處理pMain控件的所有子控件。如果當(dāng)前控件的類型為RadioButton控件,則設(shè)置與當(dāng)前控件文本相同的單選按鈕的Checked屬性為true。菜單和工具欄是應(yīng)用程序中必不可少的部分,它為快速訪問程序的功能提供了遍歷。菜單和工具欄也屬于控件范疇,它的列表中包含了用于創(chuàng)建菜單和工具欄的控件。本節(jié)我們來學(xué)習(xí)菜單控件、工具欄控件、上下文菜單控件的使用方法。菜單通常位于程序標(biāo)題欄的下方。添加主菜單使用的是MenuStrip控件,此控件將應(yīng)用程序命令分組,從而使它們更容易訪問。
39、如果要為某一個(gè)窗體添加菜單控件,只要將菜單(MenuStrip)控件從“工具箱”面板中直接拖放到窗體上即可。在此,筆者向MainForm.cs窗體添加了一個(gè)菜單,并設(shè)置它的Name屬性的值為msMain。msMain菜單包括以下3個(gè)子菜單。對(duì)話框:Name屬性的值為tsmiDialog,單擊該控件觸發(fā)tsmiDialog_Click(ob- ject sender, EventArgs e)事件。容器:Name屬性的值為tsmiContain,單擊該控件觸發(fā)tsmiContain_Click(ob- ject sender, EventArgs e)事件。數(shù)據(jù)網(wǎng)格視圖:Name屬性的值為tsm
40、iDgv,單擊該控件觸發(fā)tsmiDgv_ Click(object sender, EventArgs e)事件。設(shè)計(jì)msMain菜單之后,可以在MainForm.cs窗體查看該菜單。單擊msMain菜單的3個(gè)子菜單:“對(duì)話框”、“容器”和“數(shù)據(jù)網(wǎng)格視圖”,分別彈出“對(duì)話框”、“容器”和“數(shù)據(jù)網(wǎng)格視圖”對(duì)話框。這些功能分別由它們的Click事件實(shí)現(xiàn)。工具欄通常位于主菜單的下方,提供的是主菜單中最常用的相關(guān)工具。工具欄由ToolStrip控件來實(shí)現(xiàn),它可以在Windows窗體應(yīng)用程序中承載菜單、控件和用戶常用的工具條。如果要為某一個(gè)窗體添加工具欄,只要將工具欄(ToolStrip)控件從“工具箱”面板中直接拖放到窗體上即可。在此,筆者向MainForm.cs窗體添加了一個(gè)工具欄,并設(shè)置它的Name屬性的值為tsMain。tsMain菜單包括以下3個(gè)圖像按鈕
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 超合同價(jià)部分補(bǔ)充協(xié)議
- 購(gòu)買電腦銷售合同協(xié)議
- 調(diào)料供貨商合同協(xié)議
- 訓(xùn)練設(shè)備維修合同協(xié)議
- 2025年大學(xué)物理考試策略試題及答案
- 2025新能源汽車架構(gòu)設(shè)計(jì)考核試題及答案
- 2025年大學(xué)化學(xué)課程內(nèi)容分布與復(fù)習(xí)整體思路研究試題及答案
- 浙江省稽陽(yáng)聯(lián)誼學(xué)校2025屆高三下學(xué)期4月聯(lián)考地理試卷答案
- 2025年老年社會(huì)工作師職業(yè)考試試題及答案
- 員工內(nèi)訓(xùn)協(xié)議合同協(xié)議
- 全國(guó)醫(yī)師定期考核公共衛(wèi)生考核試題500題-1
- 上饒城投筆試試題及答案
- 廣東廣州歷年中考語文現(xiàn)代文閱讀真題43篇(截至2024年)
- 產(chǎn)品三觀:打造用戶思維法則
- 小紅書搜索推廣營(yíng)銷師認(rèn)證考試題庫(kù)(附答案)
- 圍術(shù)期護(hù)理常規(guī)及技術(shù)規(guī)范
- 船舶修造行業(yè)安全風(fēng)險(xiǎn)監(jiān)控與應(yīng)急措施
- GB/T 30595-2024建筑保溫用擠塑聚苯板(XPS)系統(tǒng)材料
- 2024高考物理一輪復(fù)習(xí)第63講光的波動(dòng)性電磁波(練習(xí))(學(xué)生版+解析)
- DB11T 065-2022 電氣防火檢測(cè)技術(shù)規(guī)范
- 智能風(fēng)控與合規(guī)技術(shù)在證券領(lǐng)域的應(yīng)用
評(píng)論
0/150
提交評(píng)論