Winorm應(yīng)用程序的設(shè)計(jì)_第1頁
Winorm應(yīng)用程序的設(shè)計(jì)_第2頁
Winorm應(yīng)用程序的設(shè)計(jì)_第3頁
Winorm應(yīng)用程序的設(shè)計(jì)_第4頁
Winorm應(yīng)用程序的設(shè)計(jì)_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、c#程序設(shè)計(jì)主編 楊克玉 阮進(jìn)軍http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/

2、http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ “6.1 “學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)”項(xiàng)目項(xiàng)目主界面的設(shè)計(jì)主界面的設(shè)計(jì) 用戶可以使用菜單和工具欄分別實(shí)現(xiàn)各項(xiàng)功能任務(wù)任務(wù)6.1 “6.1 “學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)”項(xiàng)目項(xiàng)目主界面的設(shè)計(jì)主界面的設(shè)計(jì) 處理菜單響應(yīng)、工具欄響應(yīng)事件需要菜單欄(menustrip)控件、工具欄(toolstrip)控件和狀態(tài)欄(statusstrip)控件 分三步實(shí)現(xiàn)主界面的設(shè)計(jì) 1、設(shè)置窗體frmmain,作為系統(tǒng)的主界面 2、使用菜單欄

3、(menustrip)控件設(shè)計(jì)系統(tǒng)主菜單3、使用工具欄(toolstrip)控件設(shè)計(jì)系統(tǒng)工具欄4、使用狀態(tài)欄(statusstrip)控件設(shè)計(jì)系統(tǒng)狀態(tài)欄http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ 屬性說明form1namefrmmain text學(xué)生信息管理系統(tǒng) icon

4、 添加界面圖標(biāo)size1024, 768startpositoncenterscreenhttp:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ 添加菜單欄(menustrip)控件,到frmmain窗體中,命名為msmain 關(guān)鍵代碼回顧/編寫編寫“退出系統(tǒng)退出系統(tǒng)”菜單項(xiàng)菜單項(xiàng)cl

5、ick事件響應(yīng)程序代碼事件響應(yīng)程序代碼 private void tsmiquit_click(object sender, eventargs e) application.exit(); 添加工具欄 添加工具欄(toolstrip)控件,到frmmain窗體中,命名為tsmain 關(guān)鍵代碼回顧/編寫工具欄編寫工具欄 “退出退出”按鈕按鈕click事件響應(yīng)程序代碼事件響應(yīng)程序代碼 private void tsbntquit_click(object sender, eventargs e) tsmiquit_click(sender, e) 添加狀態(tài)欄 添加狀態(tài)欄(statusstrip)

6、 ,到frmmain窗體中,命名為ssmain menustrip的常用屬性 屬性說明name 控件名稱,統(tǒng)一用ms+菜單名 text 菜單項(xiàng)的文本標(biāo)題 shortcutkeys 設(shè)置與菜單項(xiàng)關(guān)聯(lián)的快捷鍵 showshortcutkeys 顯示與菜單項(xiàng)關(guān)聯(lián)的快捷鍵 http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ ht

7、tp:/ http:/ http:/ 屬性說明checked表示菜單是否被選中 dropdownitems返回一個(gè)項(xiàng)集合,用于菜單項(xiàng)相關(guān)的下拉菜單checkonclick根據(jù)checked屬性顯示菜單是否被選中enabled設(shè)置菜單是否可用http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ h

8、ttp:/ toolstripmenuitem主要事件 事件說明click 單擊菜單項(xiàng)引發(fā)該事件checkedchanged 單擊帶有checkonclick屬性的菜單項(xiàng)時(shí),引發(fā)這個(gè)事件 任務(wù)任務(wù)6.2 “6.2 “學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)”項(xiàng)目項(xiàng)目登陸界面的設(shè)計(jì)登陸界面的設(shè)計(jì) 檢查登陸的用戶名和密碼是否為空 如果用戶名和密碼不為空,則跳轉(zhuǎn)到“學(xué)生信息管理系統(tǒng)”主界面 任務(wù)任務(wù)6.2 “6.2 “學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)”項(xiàng)目項(xiàng)目登陸界面的設(shè)計(jì)登陸界面的設(shè)計(jì)當(dāng)用戶單擊“取消”按鈕時(shí),觸發(fā)取消按鈕的click事件,執(zhí)行btncancel_click事件處理程序,調(diào)用applica

9、tion.exit()退出整個(gè)應(yīng)用程序 當(dāng)用戶單擊“確定”按鈕時(shí),執(zhí)行btnlogin_click事件處理程序,首先調(diào)用自定義方法testinput(),當(dāng)驗(yàn)證用戶已經(jīng)輸入了用戶名和密碼信息才能調(diào)用系統(tǒng)的主界面frmmain,并關(guān)閉登陸窗口 關(guān)鍵代碼回顧 / “確定確定”按鈕,按鈕,click事件的響應(yīng)方法事件的響應(yīng)方法 private void btnlogin_click(object sender, eventargs e) if (testinput() /驗(yàn)證用戶已經(jīng)輸入用戶名和密碼驗(yàn)證用戶已經(jīng)輸入用戶名和密碼 / 顯示主窗體顯示主窗體 frmmain mainform = new

10、frmmain(); mainform.show(); / 如果驗(yàn)證通過,就顯示相應(yīng)的用戶窗體,并將當(dāng)前登陸窗體設(shè)為不可見如果驗(yàn)證通過,就顯示相應(yīng)的用戶窗體,并將當(dāng)前登陸窗體設(shè)為不可見 this.visible = false; 關(guān)鍵代碼回顧/“取消取消”按鈕,按鈕,click事件的響應(yīng)方法事件的響應(yīng)方法 private void btncancel_click(object sender, eventargs e) application.exit(); 創(chuàng)建 windows 程序步驟在 vs 中創(chuàng)建 windows 應(yīng)用程序的步驟:1、打開 vs 2、新建項(xiàng)目3、項(xiàng)目類型:visual c

11、# 項(xiàng)目4、模板:windows 應(yīng)用程序解決方案資源管理器項(xiàng)目名稱項(xiàng)目名稱主程序文件,主程序文件,包含包含main方法方法我們編寫代碼的文件我們編寫代碼的文件解決方案名稱解決方案名稱窗體設(shè)計(jì)器代碼文件,窗體設(shè)計(jì)器代碼文件,代碼為代碼為vs自動生成自動生成窗體常用屬性 屬性說明backcolor窗體背景色backgroundimage設(shè)置窗體的背景圖片 text窗體標(biāo)題欄顯示的文字fore窗體標(biāo)題字體屬性包括字體字體、字號、顏色等windowstate窗體出現(xiàn)時(shí)最初的狀態(tài)(正常、最大化、最小化)icon窗體標(biāo)題欄顯示的圖標(biāo)http:/ http:/ http:/ http:/ http:/ h

12、ttp:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ 事件說明textchange用戶加載窗體時(shí)發(fā)生 paint控件需要重新繪制時(shí)發(fā)生mousemove鼠標(biāo)指針移過控件時(shí)發(fā)生keypress當(dāng)textbox得到焦點(diǎn)并且在用戶按下某鍵并松開時(shí)觸發(fā)http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/

13、 http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ windows 系統(tǒng)中處處是事件: 鼠標(biāo)按下、鼠標(biāo)釋放、鍵盤鍵按下 windows 系統(tǒng)通過事件處理來響應(yīng)用戶的請求顯示開始菜單顯示開始菜單 我的電腦我的電腦窗口打開窗口打開事件觸發(fā)事件觸發(fā) 事件響應(yīng)的結(jié)果事件響應(yīng)的結(jié)果 單擊單擊雙擊雙擊事件驅(qū)動 windows 通過隨時(shí)響應(yīng)用戶觸發(fā)的事件做出相應(yīng)的響應(yīng)事件驅(qū)動機(jī)制 winforms 應(yīng)

14、用程序也是事件驅(qū)動的編寫事件處理程序 編寫事件處理程序的步驟:1、選中控件 2、在“屬性”窗口中單擊3、找到事件4、在對應(yīng)的位置填寫事件處理程序的方法名稱,也可以直接在該處雙擊鼠標(biāo)左鍵,系統(tǒng)將自動給事件處理程序加方法名5、編寫處理代碼實(shí)現(xiàn)窗體間的跳轉(zhuǎn)步驟:1、定義窗體對象2、顯示窗體定義窗體對象:定義窗體對象:被調(diào)用的窗體類名被調(diào)用的窗體類名 窗體對象窗體對象 = new 被調(diào)用的窗體類名被調(diào)用的窗體類名( );顯示窗體:顯示窗體:窗體對象窗體對象 . show( );messagebox 對象 代碼分析/ 最簡單的消息框最簡單的消息框messagebox.show( 請輸入用戶姓名請輸入用戶

15、姓名“, ); / 帶標(biāo)題的消息框帶標(biāo)題的消息框messagebox.show(請輸入用戶姓名請輸入用戶姓名, 輸入提示輸入提示); / 帶標(biāo)題、按鈕的消息框帶標(biāo)題、按鈕的消息框messagebox.show( 請輸入用戶姓名請輸入用戶姓名, 輸入提示輸入提示, messageboxbuttons.okcancel ); / 帶標(biāo)題、按鈕、圖標(biāo)的消息框帶標(biāo)題、按鈕、圖標(biāo)的消息框messagebox.show( 請輸入用戶姓名請輸入用戶姓名, 輸入提示輸入提示, messageboxbuttons.okcancel, messageboxicon.information ); messagebo

16、xbuttons提供按鈕的類型提供按鈕的類型okcancel 表示表示“確定確定”、“取消取消”按按鈕鈕messageboxicon提供圖標(biāo)類型提供圖標(biāo)類型information 表示消息圖標(biāo)表示消息圖標(biāo)消息框的返回值用戶點(diǎn)了哪個(gè)按鈕?用戶點(diǎn)了哪個(gè)按鈕?http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ h

17、ttp:/ http:/ dialogresult result;result = messagebox.show( 請輸入用戶姓名請輸入用戶姓名, 輸入提示輸入提示, messageboxbuttons.okcancel, messageboxicon.information);if (result = dialogresult.ok) messagebox.show(你選擇了確認(rèn)按鈕你選擇了確認(rèn)按鈕); else messagebox.show(你選擇了取消按鈕你選擇了取消按鈕); 代碼分析通過通過 “.”運(yùn)算符取得某運(yùn)算符取得某種消息框的結(jié)果種消息框的結(jié)果實(shí)現(xiàn)窗體間的跳轉(zhuǎn)步驟:1、定義窗

18、體對象2、顯示窗體定義窗體對象:定義窗體對象:被調(diào)用的窗體類名被調(diào)用的窗體類名 窗體對象窗體對象 = new 被調(diào)用的窗體類名被調(diào)用的窗體類名( );顯示窗體:顯示窗體:窗體對象窗體對象 . show( );排列控件不美觀不美觀不友好不友好排列控件對齊 對齊窗體的控件步驟1、選擇要對齊的控件 注意:所選的第一個(gè)控件為主控件2、“格式” “對齊”,選擇對齊的方式 排列控件用anchor控件 使用anchor與窗體一起動態(tài)調(diào)整控件的大小,具體步驟:1、選中需要錨定的控件(可以按下 “ctrl” 選擇多個(gè)控件,一起設(shè)置 anchor 屬性)2、單擊 anchor 屬性右邊的箭頭,顯示一個(gè)編輯器,該編

19、輯器顯示一個(gè)十字線3、關(guān)閉anchor編輯器http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ 使用dock將控件??吭诖绑w的邊緣或填充窗體,具體步驟:1、選擇要??康目丶T凇皩傩浴贝翱谥?,單擊 dock 屬性右邊的箭頭,打開 dock 屬性編輯器 2、單擊表示控件停靠位置按鈕

20、,設(shè)置??糠绞健H蝿?wù)任務(wù)6.3 “6.3 “學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)”項(xiàng)目項(xiàng)目學(xué)生信息錄入界面的設(shè)計(jì)學(xué)生信息錄入界面的設(shè)計(jì) 在界面中錄入學(xué)生的學(xué)號、姓名、性別、出生日期、系部名稱、班級名稱、聯(lián)系電話、身份證號、家庭住址和備注信息任務(wù)任務(wù)6.2 “6.2 “學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)”項(xiàng)目項(xiàng)目登陸界面的設(shè)計(jì)登陸界面的設(shè)計(jì)用戶單擊“添加”按鈕時(shí)觸發(fā)取消按鈕的click事件,執(zhí)行btnconfirm_click事件處理程序?qū)⒂脩糨斎氲男畔⒈4娴礁鱾€(gè)字符串變量中;將字符串變量作為參數(shù),調(diào)用自定義方法addstuinfo()來實(shí)現(xiàn)向數(shù)據(jù)庫中添加記錄的操作(具體方法內(nèi)容將在第7章中詳細(xì)介紹)

21、 關(guān)鍵代碼回顧 / “添加添加”按鈕,按鈕,click事件的響應(yīng)方法事件的響應(yīng)方法 private void btnconfirm_click(object sender, eventargs e) /將輸入的內(nèi)容賦值給各個(gè)字符串變量將輸入的內(nèi)容賦值給各個(gè)字符串變量 string paramstudentid = this.txtstudentid.text.trim(); if (rbtm.checked) paramstudentsex = this.rbtm.text.trim(); else paramstudentsex = this.rbtw.text.trim(); string

22、 paramstudydate = dtpstudydate.value.toshortdatestring(); string paramextendfield = this.txtextendfield.text.trim();關(guān)鍵代碼回顧/調(diào)用自定義方法調(diào)用自定義方法addstuinfo實(shí)現(xiàn)向數(shù)據(jù)庫中添加記錄的功能實(shí)現(xiàn)向數(shù)據(jù)庫中添加記錄的功能 returnvalue = addstuinfo(paramstudentid, paramstudentname, paramstudentsex, paramstudydate, paramdepartname, paramclassname,

23、 paramstudentidcard, paramaddress, paramstudenttel, paramextendfield); if (returnvalue 0) /根據(jù)方法返回值判斷添加是否成功根據(jù)方法返回值判斷添加是否成功 messagebox.show(添加成功!添加成功!); else messagebox.show(添加不成功添加不成功); radiobutton控件 屬性說明name名稱,一般用rbt+名稱的方式命名text設(shè)置單選按鈕控件的顯示標(biāo)題autosize自動調(diào)整單選按鈕控件的大小以適應(yīng)其內(nèi)容的大小checked表示控件的狀態(tài)。如果控件有一個(gè)選中標(biāo)記,它就

24、是true,否則為falsehttp:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ 事件說明checkchanged當(dāng)radiobutton的checked的值發(fā)生改變時(shí)發(fā)生 click鼠標(biāo)單擊單選按鈕時(shí)發(fā)生http:/ http:/ http:/ http:/ http:/ htt

25、p:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ / “添加添加”按鈕,按鈕,click事件的響應(yīng)方法事件的響應(yīng)方法 if (rbtm.checked) paramstudentsex = this.rbtm.text.trim(); else paramstudentsex = this.rbtw.text.trim(); radiobutton控件

26、演示示例演示示例checkbox控件 屬性說明threestate當(dāng)屬性為false時(shí),復(fù)選框控件不允許設(shè)置不確定狀態(tài)(indeterminate),只可以在代碼中把checkstate屬性改為indeterminatecheckstate獲取或設(shè)計(jì)復(fù)選框控件的狀態(tài),取值分別為checked(選中)、unchecked(未選中)和indeterminate(不確定,控件旁邊的復(fù)選框通常是灰色的,表示復(fù)選框的當(dāng)前值是無效的,或者無法確定)checkbox控件事件說明checkedchanged當(dāng)復(fù)選框的checked屬性發(fā)生改變時(shí),就引發(fā)該事件。 checkedstatechanged當(dāng)chec

27、kedstate屬性改變時(shí),引發(fā)該事件。http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ 屬性說明name獲取或設(shè)置列表框控件的名稱,一般用“l(fā)st+名稱”的方式命名。items用于存放列表框中的所有選項(xiàng),是一個(gè)集合。使用該屬性,可以添加列表項(xiàng)、移除列表項(xiàng)和獲得列表項(xiàng)的數(shù)目。m

28、ulticolumn是否支持多列,當(dāng)值為 true 時(shí)表示支持多列,當(dāng)值為 false 時(shí)不支持多列。selectedindex獲取或設(shè)置listbox控件中當(dāng)前選定項(xiàng)從零開始的索引。如果未選定任何項(xiàng),則返回值為1。text該屬性用來獲取或搜索 listbox 控件中當(dāng)前選定項(xiàng)的文本。當(dāng)把此屬性值設(shè)置為字符串值時(shí),listbox 控件將在列表框內(nèi)搜索與指定文本匹配的項(xiàng)并選擇該項(xiàng)。若在列表中選擇了一項(xiàng)或多項(xiàng),該屬性將返回第一個(gè)選定項(xiàng)的文本。listbox控件 屬性說明columnwidth在包含多個(gè)列的列表框中,這個(gè)屬性指定列的寬度。selecteditems它是一個(gè)集合可以獲取或設(shè)置listb

29、ox中當(dāng)前選定的所有選項(xiàng)。count用于返回列表框中列表項(xiàng)的個(gè)數(shù)。sorted把這個(gè)屬性設(shè)置為true,會使列表框?qū)λ倪x項(xiàng)按照字母順序排序。selectionmode 用來獲取或設(shè)置在listbox控件中選擇列表項(xiàng)的方法。默認(rèn)為one:一次只能選擇一個(gè)選項(xiàng)。其它幾種模式為:checkbox控件方法調(diào)用格式 說明 add( )listbox對象.items.add(“s”)把字符型參數(shù)s添加到“l(fā)istbox對象”指定的列表框的列表項(xiàng)中insert( )listbox對象.items.insert(n,”s”)把字符型參數(shù)s插入到“l(fā)istbox對象”指定的列表框中索引為n的位置處。ind

30、exof()listbox對象.items. indexof (“s”);用于返回指定項(xiàng)s在集合中的索引remove ( ) listbox對象.items.remove(“s”);從 listbox對象中移除字符型參數(shù)列表項(xiàng)scheckbox控件方法調(diào)用格式 說明 removeat() listbox對象.items.removeat(s);從 listbox對象移除指定索引號的列表項(xiàng)clear ( )listbox對象.items.clear()清除列表框中的所有項(xiàng)findstring() listbox對象.items. findstring(s)查找列表框中第一個(gè)以指定字符串s開頭的字

31、符串checkbox控件演示示例演示示例datetimepickerdatetimepicker控件控件 datetimepickerdatetimepicker控件控件 屬性說明name獲取或設(shè)置datetimepicker控件的名稱,一般用“dtp+名稱”的方式命名。value用于表示當(dāng)前日期/時(shí)間值。若當(dāng)前日期為“2008年4月22日10點(diǎn)12分28秒”,則表達(dá)式“dtpnow.value”的值為“2008-4-22 10:12:28”。date用于獲取當(dāng)前日期/時(shí)間值的日期部分。若當(dāng)前日期為“2008年4月22日10點(diǎn)12分28秒”,則表達(dá)式“dtpnow.value.date”的值為“2008-4-22”。datetimepickerdatetimepicker控件控件 屬性說明year、month、day、hour、minute、seconddayofweek、dayofyear分別用于獲取當(dāng)前日期/時(shí)間值的年、月、日、小時(shí)、分鐘、秒、星期幾和當(dāng)年第幾天部分。showupdown

溫馨提示

  • 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

提交評論