第6章WinForm用戶界面_第1頁
第6章WinForm用戶界面_第2頁
第6章WinForm用戶界面_第3頁
第6章WinForm用戶界面_第4頁
第6章WinForm用戶界面_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C#程序設(shè)計程序設(shè)計第第6章章 WinForm用戶界面用戶界面本章目標(biāo)本章目標(biāo)l理解理解Windows應(yīng)用程序運行機制應(yīng)用程序運行機制l了解基本控件的常用屬性和支持的常用方法了解基本控件的常用屬性和支持的常用方法l理解基于事件的編程方法理解基于事件的編程方法l掌握掌握Windows應(yīng)用程序組成文件的作用應(yīng)用程序組成文件的作用l掌握窗體的基本屬性和方法的使用掌握窗體的基本屬性和方法的使用l掌握常用控件的基本屬性和方法的使用掌握常用控件的基本屬性和方法的使用23引入引入 常用控件常用控件菜單菜單 認識認識WinForm窗體的屬性方法和事件窗體的屬性方法和事件 對話框?qū)υ捒蚧靖拍罨靖拍頻圖形用戶

2、界面或圖形用戶接口圖形用戶界面或圖形用戶接口GUI(Graphical User Interface)是指用圖形方式顯示的計算機)是指用圖形方式顯示的計算機操作用戶接口操作用戶接口l與早期計算機使用的命令行界面相比,圖形界與早期計算機使用的命令行界面相比,圖形界面對用戶來說更為簡便易用面對用戶來說更為簡便易用4窗體和控件窗體和控件lWindows 操作系統(tǒng)中,處處是窗體操作系統(tǒng)中,處處是窗體5窗體是存放各種控件窗體是存放各種控件(包括標(biāo)簽、文本框、(包括標(biāo)簽、文本框、命令按鈕等)的容器命令按鈕等)的容器控件三要素控件三要素l屬性屬性l方法方法l事件事件能夠通過代碼響應(yīng)或能夠通過代碼響應(yīng)或“處理

3、處理”的操作的操作 可由用戶操作、程序代碼或系統(tǒng)生成??捎捎脩舨僮?、程序代碼或系統(tǒng)生成。 6Windows 系統(tǒng)中處處是事件:系統(tǒng)中處處是事件:n鼠標(biāo)按下鼠標(biāo)按下、鼠標(biāo)釋放鼠標(biāo)釋放、鍵盤鍵按下鍵盤鍵按下Windows的驅(qū)動方式是事件驅(qū)動,程序流程不由事件的的驅(qū)動方式是事件驅(qū)動,程序流程不由事件的順序控制,而由事件的發(fā)生來控制順序控制,而由事件的發(fā)生來控制7引入引入 常用控件常用控件菜單菜單 認識認識WinForm窗體的屬性方法和事件窗體的屬性方法和事件 工具欄工具欄開發(fā)簡單的開發(fā)簡單的Windows應(yīng)用程序應(yīng)用程序l新建新建Windows應(yīng)用程序應(yīng)用程序8認識認識 WinForms9項目名稱項

4、目名稱主程序文件,主程序文件,包含包含Main方法方法我們編寫代碼的文件我們編寫代碼的文件解決方案名稱解決方案名稱窗體設(shè)計器代碼文件,窗體設(shè)計器代碼文件,代碼為代碼為VS自動生成自動生成開發(fā)簡單的開發(fā)簡單的Windows應(yīng)用程序應(yīng)用程序10進一步認識窗體文件進一步認識窗體文件lWinForms 窗體有兩種編輯窗口:窗體有兩種編輯窗口:11窗體設(shè)計器窗口窗體設(shè)計器窗口窗體代碼編輯窗口窗體代碼編輯窗口12 程序員編寫的代碼程序員編寫的代碼 VS自動生成的代碼自動生成的代碼 / Form1.Designer.csnamespace MyForm partial class Form1 / priva

5、te void InitializeComponent() / VS自動生成的代碼自動生成的代碼 this.ShowInTaskbar = false; this.Name = Form1; this.Text = Form1; this.TopMost = true; 運行時運行時合到一起合到一起組成一個窗體文件組成一個窗體文件/ Form1.cs namespace MyForm public partial class Form1 : Form public Form1() InitializeComponent(); / 我們編寫的代碼我們編寫的代碼 怎樣使用怎樣使用partial認識

6、窗體類認識窗體類lForm 類:類:.NET 預(yù)定義的窗體類預(yù)定義的窗體類lForm1 繼承自繼承自 Form13構(gòu)造函數(shù)構(gòu)造函數(shù)做一些初始化的工作做一些初始化的工作編譯器自動調(diào)用編譯器自動調(diào)用/ Form1.cs namespace MyForm public partial class Form1 : Form public Form1() InitializeComponent(); 冒號表示繼承冒號表示繼承Form類定義了窗體的基本屬性類定義了窗體的基本屬性和行為和行為我們創(chuàng)建的窗體都繼承自我們創(chuàng)建的窗體都繼承自Form類類Form1具有相應(yīng)的屬性和行為具有相應(yīng)的屬性和行為為項目添加窗

7、體為項目添加窗體lForm 類:類:.NET 預(yù)定義的窗體類預(yù)定義的窗體類lForm1 繼承自繼承自 Form14/use code to create new formform myform2 = new form();myform2.show();myform2.hide();myform2.close();15引入引入 常用控件常用控件菜單菜單 認識認識WinForm窗體的屬性方法和事件窗體的屬性方法和事件對話框?qū)υ捒虼绑w的重要屬性窗體的重要屬性l窗體窗體是一個最基本的容器控件,它相當(dāng)于一塊畫布,可以是一個最基本的容器控件,它相當(dāng)于一塊畫布,可以在其上放置一些控件。在其上放置一些控件。

8、l窗體屬性可通過窗體屬性可通過屬性窗口屬性窗口和和代碼代碼兩種方式操作兩種方式操作l注意枚舉類型的使用,如注意枚舉類型的使用,如FormBorderStyle16Form1.formborderstyle= FormBorderStyle.FixedSingle;Form1.backColor = Color.Blue; 窗體的重要屬性窗體的重要屬性17Name :窗體對象的名字,類似于變量的名字:窗體對象的名字,類似于變量的名字 BackColor :窗體的背景色:窗體的背景色 ShowInTaskBar :設(shè)置窗體是否出現(xiàn)在任務(wù)欄:設(shè)置窗體是否出現(xiàn)在任務(wù)欄 StartPosition :窗

9、體第一次出現(xiàn)時的位置:窗體第一次出現(xiàn)時的位置 Text :窗體標(biāo)題欄顯示的文字:窗體標(biāo)題欄顯示的文字 TopMost :設(shè)置窗體是否為最頂端的窗體:設(shè)置窗體是否為最頂端的窗體 WindowState :窗體出現(xiàn)時最初的狀態(tài)(正常、最大化、最小化):窗體出現(xiàn)時最初的狀態(tài)(正常、最大化、最小化) Location, ForeColor, Font, Size, P131 窗體的方法窗體的方法l默認情況下,主窗體關(guān)閉時應(yīng)用程序就會退出默認情況下,主窗體關(guān)閉時應(yīng)用程序就會退出lExit方法不會立即關(guān)閉應(yīng)用程序,而是關(guān)閉所有消息泵方法不會立即關(guān)閉應(yīng)用程序,而是關(guān)閉所有消息泵l一般調(diào)用主窗體的一般調(diào)用主窗

10、體的close方法來關(guān)閉應(yīng)用程序方法來關(guān)閉應(yīng)用程序l一般可在一般可在Application.Exit事件處理中清除程序占用的資源事件處理中清除程序占用的資源lP132 (Show, ShowDialog)18Application.Exit()(); Form1()()Application.ApplicationExit += new EventHandler(app_appExit);Private void app_appExit(object sender, EventArgs e) connection.close();基于事件的編程基于事件的編程l事件提供一種機制,特別是針對事件提

11、供一種機制,特別是針對當(dāng)應(yīng)用程序等待響應(yīng)當(dāng)應(yīng)用程序等待響應(yīng),執(zhí)行特定工作執(zhí)行特定工作l響應(yīng)可以是響應(yīng)可以是用戶對應(yīng)用程序所進行的操作用戶對應(yīng)用程序所進行的操作,或是,或是程序本程序本身所產(chǎn)生的響應(yīng)行為身所產(chǎn)生的響應(yīng)行為19顯示開始菜單顯示開始菜單 我的電腦我的電腦窗口打開窗口打開事件觸發(fā)事件觸發(fā) 事件響應(yīng)的結(jié)果事件響應(yīng)的結(jié)果 單擊單擊雙擊雙擊委托委托l(wèi)Delegate type delegateName(parameter)ldelegateName為指定委托的名稱為指定委托的名稱ltype為引用方法的返回值類型為引用方法的返回值類型lparameter為引用方法所接受的參數(shù)表內(nèi)容為引用方法所

12、接受的參數(shù)表內(nèi)容20應(yīng)用程序應(yīng)用程序 委派對象委派對象 方法方法1 方法方法2 執(zhí)行結(jié)果執(zhí)行結(jié)果1 執(zhí)行結(jié)果執(zhí)行結(jié)果2 注意:聲明所創(chuàng)建的委托類型,其返回值以及參數(shù)表與往后所引用的方法必須完全符合基于事件的編程基于事件的編程-委托委托l(wèi)C#C#使用委托使用委托DelegateDelegate處理事件處理事件l通過委托對象可動態(tài)更改其調(diào)用的方法通過委托對象可動態(tài)更改其調(diào)用的方法21執(zhí)行結(jié)果執(zhí)行結(jié)果1 應(yīng)用程序應(yīng)用程序 方法方法1 方法方法2 執(zhí)行結(jié)果執(zhí)行結(jié)果2 應(yīng)用程序應(yīng)用程序 委派對象委派對象 方法方法1 方法方法2 執(zhí)行結(jié)果執(zhí)行結(jié)果1 執(zhí)行結(jié)果執(zhí)行結(jié)果2 編寫事件處理程序編寫事件處理程序22

13、P133Load23引入引入 常用控件常用控件菜單菜單 認識認識WinForm窗體的屬性方法和事件窗體的屬性方法和事件 對話框?qū)υ捒騑inForms 中的常用控件中的常用控件l如何添加控件l控件格式設(shè)置24可視化界面組件統(tǒng)稱為控件System.Windows.Forms.Control System.Windows.FormsControlButtonBaseButtonCheckBoxLabelListControlComboBoxListBoxTextBoxBaseTextBoxRadioButton代碼添加代碼添加設(shè)計視圖設(shè)計視圖代碼添加代碼添加設(shè)計視圖設(shè)計視圖大小和間距大小和間距控件的

14、分層控件的分層標(biāo)簽標(biāo)簽25屬性說明說明Text該屬性用于設(shè)置或獲取與該控件關(guān)聯(lián)的文本該屬性用于設(shè)置或獲取與該控件關(guān)聯(lián)的文本TextAlignImageAlign獲取或設(shè)置標(biāo)簽中文本、圖像的對齊方式獲取或設(shè)置標(biāo)簽中文本、圖像的對齊方式Image設(shè)置標(biāo)簽上的圖像設(shè)置標(biāo)簽上的圖像AutoSizeTrue或或False;是否自動調(diào)整控件以完整顯示;是否自動調(diào)整控件以完整顯示內(nèi)容內(nèi)容BorderStyle設(shè)置邊框樣式。枚舉類型:無,單行及設(shè)置邊框樣式。枚舉類型:無,單行及3D方法方法說明說明 Hide隱藏控件隱藏控件,調(diào)用該方法時,即使調(diào)用該方法時,即使 Visible 屬性設(shè)置為屬性設(shè)置為 True,

15、控件也不可見,控件也不可見 Show 相當(dāng)于將控件的相當(dāng)于將控件的 Visible 屬性設(shè)置為屬性設(shè)置為 True 并顯示控件并顯示控件文本框文本框26屬性屬性說明說明MaxLength 可在文本框中輸入的最大字符數(shù)可在文本框中輸入的最大字符數(shù) Multiline 表示是否可在文本框中輸入多行文本表示是否可在文本框中輸入多行文本 Passwordchar 機密和敏感數(shù)據(jù),密碼輸入字符機密和敏感數(shù)據(jù),密碼輸入字符 ReadOnly 文本框中的文本為只讀文本框中的文本為只讀Text 檢索在控件中輸入的文本檢索在控件中輸入的文本方法方法說明說明 Clear刪除現(xiàn)有的所有文本刪除現(xiàn)有的所有文本 事件事

16、件說明說明KeyPress用戶按一個鍵結(jié)束時將發(fā)生該事件用戶按一個鍵結(jié)束時將發(fā)生該事件 按鈕按鈕27屬性屬性說明說明Enabled確定是否可以啟用或禁用該控件確定是否可以啟用或禁用該控件事件事件說明說明Click單擊按鈕時將觸發(fā)該事件單擊按鈕時將觸發(fā)該事件P138 (演示演示)列表框列表框-ListBoxl顯示一個項列表,可選擇一項或多項顯示一個項列表,可選擇一項或多項屬性說明Items使用 Items 屬性向列表添加項 Add、Insert、Clear 、Remove SelectionMode 確定一次可以選擇多少列表項 SelectedIndex 返回對應(yīng)于列表框中第一個選定項的索引值。

17、 選定多項時,SelectedIndex 值反映列表中最先出現(xiàn)的選定項;未選定時,返回-1。 SelectedItem返回項本身,通常是字符串值 MultiColumn 為 true 時,列表框以多列形式顯示項 Text 返回當(dāng)前選定項的文本返回當(dāng)前選定項的文本Sorted是否自動按字母排序是否自動按字母排序SelectionMode的屬性的屬性使用枚舉類型使用枚舉類型SelectionMode.one SelectionMode. MultiSimple SelectionMode. MultiExtended SelectionMode.None28列表框列表框-ListBoxl列表框底部

18、添加項列表框底部添加項:Add() 方法方法l指定位置添加項:指定位置添加項:Insert(n,s)方法方法l添加多個項目:添加多個項目:AddRange() 方法方法l清除項:清除項:listbox.items.RemoveAt(index) /參數(shù)為索引值參數(shù)為索引值listbox.items.Remove (item1) listbox.items.clear();n:要插入項的位置索引要插入項的位置索引s:要插入的內(nèi)容要插入的內(nèi)容29列表框列表框-ListBoxl獲取所選項的索引:獲取所選項的索引:selectedIndex(start from 0)l獲取所選項的引用:獲取所選項的引

19、用:selectedIteml多重選擇列表框多重選擇列表框selectedIndices返回一個索引的集合返回一個索引的集合selectedItems返回所選項的集合返回所選項的集合ListBox.SelectedIndexCollection indices = listBox2.SelectedIndices;foreach(int index in indices) MessageBox.Show(selected index:rn + index.ToString()+listBox2.SelectedItem );ListBoxListBox.SelectedObjectCollec

20、tion selectedItems = listBox1.SelectedItems;foreach(string c in selectedItems) messagebox.show(“selected Item:” + c);SelectedIndexCollection類的實例類的實例SelectedObjectCollection類的實例類的實例常用事件常用事件Click、DoubleClick、SelectedIndexChenged、SelectedValueChanged(在列表框中改變選中項時觸發(fā)在列表框中改變選中項時觸發(fā))30組合框組合框-ComboBoxl用于在下拉組合

21、框中顯示數(shù)據(jù)用于在下拉組合框中顯示數(shù)據(jù)l默認情況下,默認情況下,ComboBox控件分兩部分顯示:控件分兩部分顯示:頂部是允許用戶鍵入列表項的文本框頂部是允許用戶鍵入列表項的文本框第二部分是一個列表框,顯示一個項列表第二部分是一個列表框,顯示一個項列表lComboBox的列表框的列表框不支持不支持多項選擇多項選擇31組合框組合框-ComboBox常用屬性:常用屬性:lText屬性屬性:設(shè)定下拉選項控件顯示的文本信息,也可以等待:設(shè)定下拉選項控件顯示的文本信息,也可以等待用戶輸入用戶輸入 lItems屬性屬性:點擊屬性后面對應(yīng)的按鈕,彈出:點擊屬性后面對應(yīng)的按鈕,彈出“字符串集合字符串集合編輯器

22、編輯器”對話框?qū)υ捒騦MaxDropDownItems屬性屬性:下拉列表顯示最大項數(shù):下拉列表顯示最大項數(shù)lDropDownStyle屬性屬性:設(shè)定:設(shè)定ComboBox顯示樣式顯示樣式Simple:文本框可編輯,列表框可見:文本框可編輯,列表框可見DropDown:文本框可編輯,單擊箭頭按鈕顯示列表部分;默認值。:文本框可編輯,單擊箭頭按鈕顯示列表部分;默認值。DropDownList:不能直接編輯文本框,單擊箭頭顯示列表:不能直接編輯文本框,單擊箭頭顯示列表32組合框組合框-ComboBoxl常用屬性:常用屬性:SelectedIndex :返回當(dāng)前選定的項:返回當(dāng)前選定的項 Select

23、edItem:返回當(dāng)前選定的值返回當(dāng)前選定的值comboBox1.Items.Add(“abc”); /在最后添加在最后添加項項l特有的方法:特有的方法:Select () :選中文本框部分文字的一部分選中文本框部分文字的一部分 SelectAll():選中文本框中的所有文字。選中文本框中的所有文字。33Select():選中文本框:選中文本框Select(index ,length)不能多選,不存在不能多選,不存在SelectedItems屬性屬性單選按鈕單選按鈕-RadioButtonlWindows 窗體窗體單選按鈕單選按鈕控件以組的形式使用控件以組的形式使用l單選按鈕允許用戶從多個選項

24、中選擇一個選項單選按鈕允許用戶從多個選項中選擇一個選項屬性屬性說明說明Checked確定是否已選定控件確定是否已選定控件方法方法說明說明Focus將輸入焦點移至控件將輸入焦點移至控件事件事件說明說明Click單擊按鈕時發(fā)生單擊按鈕時發(fā)生CheckedChanged當(dāng)當(dāng)CheckedChecked屬性值更改時屬性值更改時34復(fù)選按鈕復(fù)選按鈕-CheckBoxl 復(fù)選按鈕控件復(fù)選按鈕控件(CheckBox)與單選按鈕控件一)與單選按鈕控件一樣,也為用戶提供一組可供選擇的選項。但它與單樣,也為用戶提供一組可供選擇的選項。但它與單選按鈕又有所不同,即每個復(fù)選按鈕都是一個獨立選按鈕又有所不同,即每個復(fù)選

25、按鈕都是一個獨立選項,多個復(fù)選按鈕間不存在單選按鈕那種彼此互選項,多個復(fù)選按鈕間不存在單選按鈕那種彼此互斥的問題,所以,它既可被單選,也可被多選。斥的問題,所以,它既可被單選,也可被多選。 35分組框分組框-GroupBoxl創(chuàng)建有標(biāo)題的控件容器創(chuàng)建有標(biāo)題的控件容器l可用作對選項進行分組可用作對選項進行分組屬性屬性說明說明Controls獲取包含在獲取包含在GroupBoxGroupBox控件內(nèi)的控件的集合控件內(nèi)的控件的集合36圖片框圖片框l圖片框控件表示可用于顯示圖像的圖片框控件表示可用于顯示圖像的 Windows 圖片框控件圖片框控件 屬性說明說明Image 用于指定圖片框顯示的圖像。該圖

26、像可在設(shè)計或運行用于指定圖片框顯示的圖像。該圖像可在設(shè)計或運行時設(shè)置時設(shè)置SizeMode 用于指定圖像的顯示方式??梢灾付ǖ母鞣N大小模式用于指定圖像的顯示方式??梢灾付ǖ母鞣N大小模式包括包括 AutoSize、CenterImage、Normal 和和 StretchImage。默認值為。默認值為 Normal方法方法說明說明Show 顯示控件顯示控件37顯示位圖、元文件、圖標(biāo)、JPEG、GIF 或 PNG 等格式的圖形是一種圖形顯示控件圖片框圖片框中圖片的設(shè)置方法兩種:圖片框中圖片的設(shè)置方法兩種:窗體設(shè)計時,通過屬性窗口窗體設(shè)計時,通過屬性窗口Image屬性來指定屬性來指定代碼設(shè)計時:代碼

27、設(shè)計時: 產(chǎn)生一個產(chǎn)生一個Bitmap類的實例并賦值給類的實例并賦值給Image屬性屬性Bibmap b=new Bitmap(圖像文件名圖像文件名);pictureBox1.Image=b; 通過通過Image.FromFile方法直接從文件中加載方法直接從文件中加載pictureBox1.Image=Image.FromFile(圖像文件名圖像文件名); pictureBox1.Load(圖像文件名圖像文件名);Timer控件控件 l定時器控件定時器控件(Timer)是一種能夠按照設(shè)定的時間間隔,)是一種能夠按照設(shè)定的時間間隔,周期性地自動觸發(fā)事件的控件,利用它可以實現(xiàn)各種復(fù)周期性地自動觸

28、發(fā)事件的控件,利用它可以實現(xiàn)各種復(fù)雜的控制,如延時或動畫等。在程序運行過程中,雜的控制,如延時或動畫等。在程序運行過程中,定時定時器控件是不可見的器控件是不可見的。lEnable:啟用啟用Timer控件或控件或time1.start();lInterval:Time的頻率,單位毫秒的頻率,單位毫秒lStart():啟動時鐘:啟動時鐘lStop():停止時鐘:停止時鐘l事件事件Tick3839引入引入 常用控件常用控件菜單菜單 認識認識WinForm窗體的屬性方法和事件窗體的屬性方法和事件 對話框?qū)υ捒虿藛尾藛蜯enuStrip控件控件lToolStripMenuItemlClick事件事件l熱

29、鍵熱鍵&lShortcutKeys + ShowShortcutKeys屬性屬性l分割線分割線“-”40彈出菜單彈出菜單ContextMenuStrip控件控件lToolStripMenuItemlClick事件事件lForm.ContextMenuStrip屬性屬性41ToolStrip控件和工具欄控件和工具欄 l在窗體中,工具欄通常把常用的功能以按鈕圖標(biāo)的在窗體中,工具欄通常把常用的功能以按鈕圖標(biāo)的形式表示形式表示 。42StatusStrip控件和狀態(tài)欄控件和狀態(tài)欄 l狀態(tài)欄通常位于窗體的最底部,用于顯示窗體上對狀態(tài)欄通常位于窗體的最底部,用于顯示窗體上對象的相關(guān)信息,或者顯示應(yīng)用程序的信息。狀態(tài)欄象的相關(guān)信息,或者顯示應(yīng)用程序的信息。狀態(tài)欄的創(chuàng)建通過的創(chuàng)建通過StatusStrip控件來實現(xiàn)??丶韺崿F(xiàn)。 lStatusStrip.Items4344引入引入 常用控件常用控件菜單菜單 認識認識WinForm窗體的屬性方法和事件窗體的屬性方法和事件 對話框?qū)υ捒驅(qū)υ捒蝾悓哟螌υ捒蝾悓哟?5FileDialogPrintDialogCommonDialogColorDialogFontDialogFolderBrowseDialogOpenFileDialogSaveFileDialog

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論