第五章用戶界面設(shè)計(jì)_第1頁
第五章用戶界面設(shè)計(jì)_第2頁
第五章用戶界面設(shè)計(jì)_第3頁
第五章用戶界面設(shè)計(jì)_第4頁
第五章用戶界面設(shè)計(jì)_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第五章 用戶界面設(shè)計(jì) 本章目錄5.1 用戶界面概述5.2 菜單設(shè)計(jì)5.3 對話框設(shè)計(jì) 5.4 工具欄 5.5 綜合應(yīng)用 5.6 自主學(xué)習(xí)鼠標(biāo)和鍵盤5.1 用戶界面概述2例5.1 記事本程序 演示主菜單菜單項(xiàng)下拉式菜單MenuStrip3彈出式菜單ContextMenuStrip4通用對話框5自定義對話框6工具欄界面設(shè)計(jì)預(yù)定義類7本章目錄System.Windows.Forms命名空間界面元素控件說明菜單MenuStripContextMenuStrip下拉式菜單彈出式菜單通用對話框OpenFileDialogSaveFileDialogFontDialogColorDialog打開文件對話框

2、保存文件對話框字體對話框顏色對話框工具欄ToolStrip工具欄5.2 菜單設(shè)計(jì)8MenuStrip下拉式菜單本章目錄ContextMenuStrip彈出式菜單5.2.1 菜單設(shè)計(jì)概述菜單項(xiàng)的設(shè)置9熱鍵 &熱鍵字符 輸入:新建(&N) 顯示:新建(N) N為熱鍵本章目錄重要屬性(1)Text設(shè)置菜單項(xiàng)文本 (2) ShortcutKeys設(shè)置快捷鍵重要事件事件Click 為菜單項(xiàng)編寫程序 僅在當(dāng)前控件中起作用(如Alt+F打開”文件”菜單后,直接按N鍵”新建”)在當(dāng)前活動的程序中起作用;特殊:系統(tǒng)級快捷鍵,Ctrl+C;Alt+Tab;Wins+U10例5.2 設(shè)計(jì)例5.1的菜單項(xiàng)本章目錄5.

3、2.2 創(chuàng)建下拉式菜單菜單顯示 快捷鍵菜單顯示 快捷鍵菜單顯示 菜單顯示 文件(F)編輯(E)格式(O)幫助(H)新建(N)Ctrl+N剪切(T)Ctrl+X 字體(F)關(guān)于(A)打開(O)Ctrl+O復(fù)制(C)Ctrl+C顏色(C)更多幫助另存為(A)Ctrl+S粘貼(P)Ctrl+V分隔線退出(X)在標(biāo)題欄輸入-(減號);或在菜單項(xiàng)上右擊鼠標(biāo),”插入-Separator”下拉式菜單的建立過程:在窗體上放置一個(gè)MenuStrip控件設(shè)計(jì)菜單 Text設(shè)置菜單項(xiàng)的屬性 ShortcutKeys編寫菜單項(xiàng)的事件過程 Click private void FileNew_Click()/“新建”菜

4、單項(xiàng)的事件過程 textBox1.Text = ; textBox1.Focus();private void FileExit_Click()/“退出”菜單項(xiàng)的事件過程 Application.Exit();11string s;private void EditCut_Click() /剪切事件 s = textBox1.SelectedText ;/將選中的內(nèi)容存放到變量s中 textBox1. SelectedText = “”;/將選中的內(nèi)容清除實(shí)現(xiàn)剪切private void EditCopy_Click() /復(fù)制事件 s = textBox1. SelectedText ;pr

5、ivate void EditPaste_Click() /粘貼事件 textBox1. SelectedText = s; /將s中的內(nèi)容賦值給光標(biāo)所在的SelectedText,實(shí)現(xiàn)粘貼12本章目錄5.2.3 創(chuàng)建彈出式菜單private void FileNew_Click()/ “新建(N)”菜單項(xiàng)的事件過程textBox1.Text = ;textBox1.Focus();例5.3 設(shè)計(jì)例5.1的彈出式菜單彈出式菜單的建立過程:在窗體上放置一個(gè)ContextMenuStrip控件設(shè)置菜單項(xiàng)的屬性 Text、ShorcutKeys 建立彈出式菜單與文本框之間的關(guān)聯(lián)編寫(或共享)菜單項(xiàng)的

6、事件過程 Click 選定textBox1文本框,將其ContextMenuStrip屬性設(shè)置為contextMenuStrip1。5.3 對話框設(shè)計(jì)13本章目錄通用對話框自定義對話框通用對話框控件顏色對話框目錄瀏覽對話框字體對話框打開文件對話框保存文件對話框打印頁面設(shè)置對話框打印預(yù)覽對話框145.3.1通用對話框15創(chuàng)建通用對話框:將控件拖到窗體上本章目錄通用對話框的使用例如: openFileDialog1.ShowDialog();16DialogResult.OK DialogResult.Cancel 彈出對話框:ShowDialog方法返回對話框的選擇結(jié)果功能:信息交互,是輸入輸出

7、的界面,但實(shí)際的功能需要編程實(shí)現(xiàn)。1. 打開文件對話框OpenFileDialog控件重要屬性 :(1) FileName 設(shè)置初始打開的文件名,也可返回從對話框當(dāng)前文件列表中選擇的文件名。包含了文件路徑。 (2) Filter 確定所顯示文件的類型 ,例如:Doc Files(*.docx)|*.docx|Text Files(*.txt)|*.txt|所有文件|*.*顯示word文檔、文本文件和所有文件(4) InitialDirectory 設(shè)置文件對話框的初始目錄(5) Title獲取或設(shè)置對話框的標(biāo)題(3) FilterIndex 設(shè)置或獲取文件過濾器索引openFileDialog

8、1.FilterIndex = 3;openFileDialog1.FileName = “123;openFileDialog1.Filter = Doc Files|*.docx|Text Files|*.txt|All Files|*.*;openFileDialog1.InitialDirectory = c:;例5.5 為引例中的“打開”菜單項(xiàng)編寫事件過程。18private void FileOpen_Click() openFileDialog1.FileName = “123; openFileDialog1.InitialDirectory = c:; openFileDia

9、log1.Filter = Doc Files|*.docx|Text Files|*.txt|All Files|*.*; openFileDialog1.FilterIndex = 3; openFileDialog1.ShowDialog(); / 顯示對話框 if (dr = DialogResult.OK) StreamReader sr = new StreamReader(openFileDialog1.FileName); textBox1.Text = sr.ReadToEnd();/ 讀數(shù)據(jù)到文件結(jié)束 sr.Close();/ 關(guān)閉文件 本章目錄屬性設(shè)置,也可在屬性窗口中設(shè)

10、置實(shí)際文件打開功能的實(shí)現(xiàn)編碼19例5.4 編寫一個(gè)應(yīng)用程序,彈出打開文件對話框, 從中選擇一個(gè)圖片,能在圖形框中顯示該圖片本章目錄可以在屬性窗口中設(shè)置openFileDialog1.FileName = 123;openFileDialog1.InitialDirectory = D:;openFileDialog1.Filter = Pictures|*.bmp;*.jpg|All Files|*.*;openFileDialog1.FilterIndex = 1;/顯示“打開文件”對話框,并判斷是否選擇文件if (openFileDialog1.ShowDialog() = DialogR

11、esult.OK) pictureBox1.Image = Image.FromFile(openFileDialog1.FileName); else MessageBox.Show(沒有選擇文件);例5.6 為引例中的“另存為”菜單項(xiàng)編寫事件過程。2. 保存文件對話框 20本章目錄控件:SaveFileDialog屬性與OpenFileDialog控件基本相同,特有屬性是DefaultExt, 用于設(shè)置缺省的擴(kuò)展名private void FileSaveAs_Click() saveFileDialog1.FileName = “123;/ 設(shè)置缺省文件名 saveFileDialog1

12、.DefaultExt = “txt ;/ 設(shè)置缺省擴(kuò)展名 saveFileDialog1.ShowDialog();/ 打開對話框 if (dr = DialogResult.OK) StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);sw.Write(textBox1.Text); / 將文本框中的內(nèi)容寫入文件 sw.Close(); / 關(guān)閉文件 屬性設(shè)置,也可在屬性窗口中設(shè)置實(shí)際文件保存功能的實(shí)現(xiàn)編碼213. 顏色對話框 控件:ColorDialog重要屬性:Color 用戶選定的顏色,屬于Color結(jié)構(gòu)類型 例5.

13、7 為例5.1中的“顏色”菜單項(xiàng)編寫事件過程。private void FormatColor_Click(object sender, EventArgs e)colorDialog1.ShowDialog();/ 打開顏色對話框textBox1.ForeColor = colorDialog1.Color; / 設(shè)置文件框前景顏色設(shè)置文件框前景顏色本章目錄224. 字體對話框 控件:FontDialog例5.8 為例5.1中的“字體”菜單項(xiàng)編寫事件過程。 private void FormatFont_Click(object sender, EventArgs e) fontDialog

14、1.ShowColor = true;/ 字體對話框上添加“顏色”選項(xiàng)fontDialog1.ShowDialog();/ 打開字體對話框textBox1.Font = fontDialog1.Font;/ 設(shè)置文本框的字體textBox1.ForeColor = fontDialog1.Color;/ 設(shè)置文件框字體顏色Font獲取選擇的字體Color 選定的顏色ShowColor控制是否有“顏色”選項(xiàng)總結(jié)菜單設(shè)計(jì)下拉式菜單 MenuStrip彈出式菜單 ContextMenuStrip通用對話框打開文件對話框 OpenFileDialog保存文件對話框 SaveFileDialog自定義對

15、話框及對話框間的數(shù)據(jù)傳遞?24創(chuàng)建自定義對話框 (1) 添加窗體: 項(xiàng)目添加Windows窗體 注意:一個(gè)項(xiàng)目中不能有相同名稱的窗體本章目錄5.3.2 自定義對話框 具有特殊屬性的窗體添加Windows窗體,自定義設(shè)置屬性使用.NET提供的模板,如對話框、“關(guān)于”框等本節(jié)使用第一種方法25(2)設(shè)置屬性 本章目錄屬性值說明MaximizeBoxFalse取消最大化按鈕MinimizeBoxFalse取消最小化按鈕FormBorderStyleFixedDialog對話框大小固定26例 添加窗體Form2設(shè)置屬性編寫代碼顯示窗體:能否用下列語句顯示Form2?本章目錄(3) 窗體的實(shí)例化和顯示

16、只有啟動窗體的實(shí)例化是自動完成的,而其他窗體都需要通過代碼實(shí)例化并進(jìn)行顯示Form2 f2 = new Form2(); / 定義f2為類Form2的對象變量,并創(chuàng)建一個(gè)實(shí)例賦予f2f2.ShowDialog();/顯示f2Form2. ShowDialog();原因:Form2是一個(gè)類名,不是窗體名稱(1)Show 以非模式方法顯示窗體 窗體對象.Show(); 非模式 程序可繼續(xù)執(zhí)行(2)ShowDialog 以模式方法顯示窗體 窗體對象.ShowDialog();模式 在關(guān)閉該窗體后才能對其它窗體進(jìn)行操作(3)Hide 將窗體暫時(shí)隱藏(還在內(nèi)存中) 窗體對象.Hide();(4) Clo

17、se 關(guān)閉窗體,釋放內(nèi)存 窗體對象.Close();27注意:this 關(guān)鍵字代表當(dāng)前窗體,如 this.Hide();本章目錄對話框的重要方法28例5.9 為例5.1設(shè)計(jì)一個(gè)如圖1.5.9所示的對話框, 并且為“幫助關(guān)于”編寫事件過程private void AboutDialog_Click(object sender, EventArgs e)Form2 Dialog = new Form2();Dialog.ShowDialog();本章目錄窗體間切換例 實(shí)現(xiàn)”更多幫助”菜單項(xiàng)的功能29Form1中:主窗體切換至其它窗體private void 更多關(guān)于ToolStripMenuIte

18、m_Click() Form2 fr = new Form2(); fr.ShowDialog();項(xiàng)目|添加Windows窗體Form2中:其它窗體切換回主窗體private void button1_Click() this.Hide(); /this.Close(); 如何進(jìn)行窗體間數(shù)據(jù)傳遞?305.4 工具欄 控件:ToolStrip ToolStrip控件是一個(gè)容器, 可以放置ToolStripBotton、ToolStripLabel等對象 本章目錄例5.10 為例5.1配置一個(gè)工具欄(1) 建立ToolStrip控件(2) 創(chuàng)建圖標(biāo)按鈕 選擇Button (3) 設(shè)置屬性 Ima

19、ge屬性值是圖標(biāo)按鈕中顯示的圖像 (4) 編寫事件過程 一般與菜單項(xiàng)共享事件過程31本章目錄private void toolStripButton1_Click(object sender, EventArgs e)textBox1.Text = ;textBox1.Focus();注意:可以在項(xiàng)目編輯器中設(shè)置屬性 在工具欄的屬性窗口選擇編輯器 ToolStrip控件上還可以放置ToolStripLabel等對象。 ToolStripButton還有一個(gè)主要屬性是ToolTipText(提示)325.5 綜合應(yīng)用 例5.11 根據(jù)菜單選項(xiàng),實(shí)現(xiàn)產(chǎn)生數(shù)據(jù)、修改數(shù)據(jù)以及數(shù)據(jù)統(tǒng)計(jì)功能。本章目錄分析

20、 界面設(shè)計(jì) 設(shè)置對象屬性 對象事件過程及編程 程序調(diào)試和運(yùn)行程序33三個(gè)窗體三個(gè)窗體間切換及數(shù)據(jù)傳遞菜單34主菜單菜單項(xiàng)下拉式菜單MenuStrip菜單設(shè)計(jì)過程35下拉式菜單的建立過程:在窗體上放置一個(gè)MenuStrip控件設(shè)計(jì)菜單并設(shè)置菜單項(xiàng)的屬性編寫菜單項(xiàng)的事件過程 36private void 隨機(jī)產(chǎn)生10個(gè)數(shù)據(jù)ToolStripMenuItem_Click() listBox1. Items.Clear (); Random rm = new Random(); for (int i = 0; i 10; i+) listBox1. Items .Add (rm.Next(0, 101

21、); private void 刪除最小值ToolStripMenuItem_Click() int min=(int)listBox1 .Items 0, minx = 0; for (int i = 1; i (int)listBox1.Itemsi) min = (int)listBox1.Itemsi; minx = i; listBox1. Items.RemoveAt(minx) ;清空列表框內(nèi)容逐個(gè)產(chǎn)生隨機(jī)數(shù)并加入到列表框找到列表框中的最小值的索引移除列表框中的最小值對話框37自定義對話框如何能在主窗體中訪問自定義對話框中輸入的數(shù)據(jù)?36int addi; addi=int.Pa

22、rse(textBox1.Text);/Form2.cs中public int addi;private void button1_Click() addi=int.Parse(textBox1.Text); /Form1.cs中Form2 fm2 = new Form2();fm2.addi38private void 添加數(shù)據(jù)ToolStripMenuItem_Click() Form2 fm2 = new Form2(); if (fm2.ShowDialog(this) = DialogResult.OK) listBox1.Items.Add( fm2.addi ); public

23、int addi;private void button1_Click() addi=int.Parse(textBox1.Text); Form1.cs中菜單項(xiàng)代碼Form2.cs中主要代碼對話框39自定義對話框如何能從主窗體中傳遞數(shù)據(jù)給自定義對話框?最小值:5最大值:93平均值:39.36/Form3.cs中public int min, max;public double ave;/Form1.cs中Form3 fm3 = new Form3();fm3.min = mini;fm3.max = maxi;fm3.ave = avei;40private void 統(tǒng)計(jì)ToolStrip

24、MenuItem_Click() Form3 fm3 = new Form3(); /*此處省略求listBox1中的最小值mini,最大值maxi, 和值sum*/ fm3.min = mini; fm3.max = maxi; fm3.ave = sum / listBox1.Items.Count; fm3.ShowDialog(this);public int min, max;public double ave;private void Form3_Load() textBox1.Text = min.ToString (); textBox2.Text =max.ToString

25、(); textBox3.Text = ave.ToString (0.00);Form1.cs中菜單項(xiàng)代碼Form3.cs中主要代碼對話框間數(shù)據(jù)傳遞41定義公共數(shù)據(jù)成員public 數(shù)據(jù)類型 變量名Form1:Form2:public int addi;讀fm2.addiForm2 fm2 = new Form2();Form3:public int min, max;public double ave;Form3 fm3 = new Form3();寫fm3.min寫fm3.ave與類成員變量區(qū)別?42例5.12 多重窗體應(yīng)用示例 本章目錄從Form2讀取成績數(shù)據(jù)輸出統(tǒng)計(jì)數(shù)據(jù)到Form3/

26、Form1.cs中public double math, chemi, eng, phy, chin;寫入讀出并計(jì)算43Form1.cs中主要代碼public int math, chemi, eng, phy, chin;private void 輸入成績_Click() Form2 fm2 = new Form2(); fm2.ShowDialog( this );Form1 fm1 = (Form1)(this.Owner) ;fm1.math = Convert. ToDouble(textBox1.Text);fm1.chemi = Convert. ToDouble(textBox

27、2.Text);fm1.eng = Convert. ToDouble(textBox3.Text);fm1.phy = Convert. ToDouble(textBox4.Text);fm1.chin = Convert. ToDouble(textBox5.Text);this.Hide();Form2.cs中button1_Click ()代碼44Form1.cs中主要代碼private void 計(jì)算成績_Click() Form3 fm3 = new Form3(); fm3.ShowDialog( this );private void Form3_Load() Form1 fm

28、1 = (Form1)this.Owner ; double total=fm1.math +fm1.chemi +fm1.eng +fm1.phy +fm1.chin; double ave = total/5; textBox1.Text = ave.ToString (); textBox2.Text = total.ToString ();Form3.cs中Load()代碼對話框間數(shù)據(jù)傳遞45定義公共數(shù)據(jù)成員public 數(shù)據(jù)類型 變量名Form1:Form2:fm1.mathpublic double math, chemi, eng, phy, chin;Form3:fm2.ShowDialog( this );fm3.ShowDialog( this );Form1 fm1 = (Form1)(this.Owner) ;fm1.chemiForm1 fm1 = (Form1)(this.Owner) ;fm1.mathfm1.chemi另外的方法46修改控件的Modifiers屬性為PublicForm1:Form2:sMath = Convert.ToDouble(fm2.textBox1.Text);47修改控件的Modifiers屬性為PublicForm1:Form3:fm3.textBox1.Te

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論