版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C#程序設(shè)計(jì)第六章WinForm應(yīng)用程序設(shè)計(jì)本章任務(wù) 能正確使用控件設(shè)計(jì)界面 能正確編寫事件處理程序代碼 能創(chuàng)建菜單、窗口和多文檔界面(MDI)任務(wù)6.1“學(xué)生信息管理系統(tǒng)”項(xiàng)目
——主界面的設(shè)計(jì)
用戶可以使用菜單和工具欄分別實(shí)現(xiàn)各項(xiàng)功能任務(wù)6.1“學(xué)生信息管理系統(tǒng)”項(xiàng)目
——主界面的設(shè)計(jì)
處理菜單響應(yīng)、工具欄響應(yīng)事件需要菜單欄(menuStrip)控件、工具欄(ToolStrip)控件和狀態(tài)欄(statusStrip)控件分三步實(shí)現(xiàn)主界面的設(shè)計(jì)
1、設(shè)置窗體frmMain,作為系統(tǒng)的主界面
2、使用菜單欄(menuStrip)控件設(shè)計(jì)系統(tǒng)主菜單3、使用工具欄(ToolStrip)控件設(shè)計(jì)系統(tǒng)工具欄4、使用狀態(tài)欄(statusStrip)控件設(shè)計(jì)系統(tǒng)狀態(tài)欄將窗體命名為frmMain
作為系統(tǒng)的主界面
屬性說(shuō)明Form1NamefrmMain
Text學(xué)生信息管理系統(tǒng)Icon添加界面圖標(biāo)Size1024,768StartpositonCenterScreen添加菜單欄添加菜單欄(menuStrip)控件,到frmMain窗體中,命名為msMain
關(guān)鍵代碼回顧//編寫“退出系統(tǒng)”菜單項(xiàng)Click事件響應(yīng)程序代碼
privatevoidtsmiQuit_Click(objectsender,EventArgse){
Application.Exit();}添加工具欄添加工具欄(ToolStrip)控件,到frmMain窗體中,命名為tsMain
關(guān)鍵代碼回顧//編寫工具欄“退出”按鈕Click事件響應(yīng)程序代碼
privatevoidtsbntQuit_Click(objectsender,EventArgse){
tsmiQuit_Click(sender,e)}添加狀態(tài)欄添加狀態(tài)欄(statusStrip)
,到frmMain窗體中,命名為ssMain
menuStrip的常用屬性屬性說(shuō)明Name控件名稱,統(tǒng)一用ms+菜單名
Text菜單項(xiàng)的文本標(biāo)題
ShortcutKeys
設(shè)置與菜單項(xiàng)關(guān)聯(lián)的快捷鍵
ShowShortcutKeys
顯示與菜單項(xiàng)關(guān)聯(lián)的快捷鍵
ToolStripMenuItem控件
常用屬性屬性說(shuō)明Checked表示菜單是否被選中DropDownItems返回一個(gè)項(xiàng)集合,用于菜單項(xiàng)相關(guān)的下拉菜單CheckOnClick根據(jù)Checked屬性顯示菜單是否被選中Enabled設(shè)置菜單是否可用
ToolStripMenuItem主要事件事件說(shuō)明Click單擊菜單項(xiàng)引發(fā)該事件CheckedChanged
單擊帶有CheckOnClick屬性的菜單項(xiàng)時(shí),引發(fā)這個(gè)事件
任務(wù)6.2“學(xué)生信息管理系統(tǒng)”項(xiàng)目
——登陸界面的設(shè)計(jì)
檢查登陸的用戶名和密碼是否為空
如果用戶名和密碼不為空,則跳轉(zhuǎn)到“學(xué)生信息管理系統(tǒng)”主界面
任務(wù)6.2“學(xué)生信息管理系統(tǒng)”項(xiàng)目
——登陸界面的設(shè)計(jì)當(dāng)用戶單擊“取消”按鈕時(shí),觸發(fā)取消按鈕的Click事件,執(zhí)行btnCancel_Click事件處理程序,調(diào)用Application.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)方法
privatevoidbtnLogin_Click(objectsender,EventArgse){if(TestInput())//驗(yàn)證用戶已經(jīng)輸入用戶名和密碼{
//顯示主窗體
frmMain
mainform=newfrmMain();
mainform.Show();
//如果驗(yàn)證通過(guò),就顯示相應(yīng)的用戶窗體,并將當(dāng)前登陸窗體設(shè)為不可見
this.Visible=false;}}關(guān)鍵代碼回顧//“取消”按鈕,Click事件的響應(yīng)方法
privatevoidbtnCancel_Click(objectsender,EventArgse){
Application.Exit();}創(chuàng)建Windows程序步驟在VS中創(chuàng)建Windows應(yīng)用程序的步驟:1、打開VS2、新建項(xiàng)目3、項(xiàng)目類型:VisualC#項(xiàng)目4、模板:Windows應(yīng)用程序解決方案資源管理器項(xiàng)目名稱主程序文件,包含Main方法我們編寫代碼的文件解決方案名稱窗體設(shè)計(jì)器代碼文件,代碼為VS自動(dòng)生成窗體常用屬性屬性說(shuō)明BackColor窗體背景色BackGroundImage設(shè)置窗體的背景圖片
Text窗體標(biāo)題欄顯示的文字Fore窗體標(biāo)題字體屬性包括字體字體、字號(hào)、顏色等WindowState窗體出現(xiàn)時(shí)最初的狀態(tài)(正常、最大化、最小化)Icon窗體標(biāo)題欄顯示的圖標(biāo)窗體的常用事件
事件說(shuō)明TextChange用戶加載窗體時(shí)發(fā)生Paint控件需要重新繪制時(shí)發(fā)生MouseMove鼠標(biāo)指針移過(guò)控件時(shí)發(fā)生KeyPress當(dāng)TextBox得到焦點(diǎn)并且在用戶按下某鍵并松開時(shí)觸發(fā)為什么使用事件Windows系統(tǒng)中處處是事件:鼠標(biāo)按下、鼠標(biāo)釋放、鍵盤鍵按下……Windows系統(tǒng)通過(guò)事件處理來(lái)響應(yīng)用戶的請(qǐng)求顯示開始菜單我的電腦窗口打開事件觸發(fā)事件響應(yīng)的結(jié)果單擊雙擊事件驅(qū)動(dòng)Windows通過(guò)隨時(shí)響應(yīng)用戶觸發(fā)的事件做出相應(yīng)的響應(yīng)——事件驅(qū)動(dòng)機(jī)制WinForms
應(yīng)用程序也是事件驅(qū)動(dòng)的編寫事件處理程序編寫事件處理程序的步驟:1、選中控件
2、在“屬性”窗口中單擊3、找到事件4、在對(duì)應(yīng)的位置填寫事件處理程序的方法名稱,也可以直接在該處雙擊鼠標(biāo)左鍵,系統(tǒng)將自動(dòng)給事件處理程序加方法名5、編寫處理代碼實(shí)現(xiàn)窗體間的跳轉(zhuǎn)步驟:1、定義窗體對(duì)象2、顯示窗體定義窗體對(duì)象:被調(diào)用的窗體類名
窗體對(duì)象
=new被調(diào)用的窗體類名();顯示窗體:窗體對(duì)象
.Show();MessageBox
對(duì)象代碼分析//最簡(jiǎn)單的消息框MessageBox.Show(
"請(qǐng)輸入用戶姓名“,);//帶標(biāo)題的消息框MessageBox.Show("請(qǐng)輸入用戶姓名","輸入提示");//帶標(biāo)題、按鈕的消息框MessageBox.Show(
"請(qǐng)輸入用戶姓名","輸入提示",
MessageBoxButtons.OKCancel);
//帶標(biāo)題、按鈕、圖標(biāo)的消息框MessageBox.Show(
"請(qǐng)輸入用戶姓名","輸入提示",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Information);
MessageBoxButtons提供按鈕的類型OKCancel
表示“確定”、“取消”按鈕MessageBoxIcon提供圖標(biāo)類型Information
表示消息圖標(biāo)消息框的返回值用戶點(diǎn)了哪個(gè)按鈕?
DialogResultresult;result=MessageBox.Show("請(qǐng)輸入用戶姓名","輸入提示",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Information);if(result==DialogResult.OK){MessageBox.Show("你選擇了確認(rèn)按鈕");}else{MessageBox.Show("你選擇了取消按鈕");}
代碼分析通過(guò)“.”運(yùn)算符取得某種消息框的結(jié)果實(shí)現(xiàn)窗體間的跳轉(zhuǎn)步驟:1、定義窗體對(duì)象2、顯示窗體定義窗體對(duì)象:被調(diào)用的窗體類名
窗體對(duì)象
=new被調(diào)用的窗體類名();顯示窗體:窗體對(duì)象
.Show();排列控件不美觀不友好排列控件——對(duì)齊對(duì)齊窗體的控件步驟1、選擇要對(duì)齊的控件
注意:所選的第一個(gè)控件為主控件2、“格式”→“對(duì)齊”,選擇對(duì)齊的方式
排列控件——用Anchor控件使用Anchor與窗體一起動(dòng)態(tài)調(diào)整控件的大小,具體步驟:1、選中需要錨定的控件(可以按下“Ctrl”選擇多個(gè)控件,一起設(shè)置Anchor屬性)2、單擊Anchor屬性右邊的箭頭,顯示一個(gè)編輯器,該編輯器顯示一個(gè)十字線3、關(guān)閉Anchor編輯器排列控件——用Dock控件使用Dock將控件??吭诖绑w的邊緣或填充窗體,具體步驟:1、選擇要??康目丶?。在“屬性”窗口中,單擊Dock屬性右邊的箭頭,打開Dock屬性編輯器2、單擊表示控件??课恢冒粹o,設(shè)置停靠方式。任務(wù)6.3“學(xué)生信息管理系統(tǒng)”項(xiàng)目
——學(xué)生信息錄入界面的設(shè)計(jì)
在界面中錄入學(xué)生的學(xué)號(hào)、姓名、性別、出生日期、系部名稱、班級(jí)名稱、聯(lián)系電話、身份證號(hào)、家庭住址和備注信息任務(wù)6.2“學(xué)生信息管理系統(tǒng)”項(xiàng)目
——登陸界面的設(shè)計(jì)用戶單擊“添加”按鈕時(shí)觸發(fā)取消按鈕的Click事件,執(zhí)行btnConfirm_Click事件處理程序?qū)⒂脩糨斎氲男畔⒈4娴礁鱾€(gè)字符串變量中;將字符串變量作為參數(shù),調(diào)用自定義方法addStuInfo()來(lái)實(shí)現(xiàn)向數(shù)據(jù)庫(kù)中添加記錄的操作(具體方法內(nèi)容將在第7章中詳細(xì)介紹)
關(guān)鍵代碼回顧//“添加”按鈕,Click事件的響應(yīng)方法
privatevoidbtnConfirm_Click(objectsender,EventArgse){//將輸入的內(nèi)容賦值給各個(gè)字符串變量stringparamStudentID=this.txtStudentID.Text.Trim();……if(rbtM.Checked)
paramStudentSex=this.rbtM.Text.Trim();else
paramStudentSex=this.rbtW.Text.Trim();stringparamStudyDate=dtpStudyDate.Value.ToShortDateString();……stringparamExtendField=this.txtExtendField.Text.Trim();關(guān)鍵代碼回顧//調(diào)用自定義方法addStuInfo實(shí)現(xiàn)向數(shù)據(jù)庫(kù)中添加記錄的功能
returnValue=addStuInfo(paramStudentID,paramStudentName,paramStudentSex,paramStudyDate,paramDepartName,paramClassName,paramStudentIDCard,paramAddress,paramStudentTel,paramExtendField);
if(returnValue>0)//根據(jù)方法返回值判斷添加是否成功
MessageBox.Show("添加成功!");elseMessageBox.Show("添加不成功");}RadioButton控件屬性說(shuō)明name名稱,一般用rbt+名稱的方式命名Text設(shè)置單選按鈕控件的顯示標(biāo)題AutoSize自動(dòng)調(diào)整單選按鈕控件的大小以適應(yīng)其內(nèi)容的大小Checked表示控件的狀態(tài)。如果控件有一個(gè)選中標(biāo)記,它就是true,否則為falseRadioButton控件事件說(shuō)明CheckChanged當(dāng)RadioButton的Checked的值發(fā)生改變時(shí)發(fā)生Click鼠標(biāo)單擊單選按鈕時(shí)發(fā)生關(guān)鍵代碼回顧//“添加”按鈕,Click事件的響應(yīng)方法
if(rbtM.Checked)
paramStudentSex=this.rbtM.Text.Trim();else
paramStudentSex=this.rbtW.Text.Trim();
RadioButton控件演示示例CheckBox控件屬性說(shuō)明ThreeState當(dāng)屬性為false時(shí),復(fù)選框控件不允許設(shè)置不確定狀態(tài)(Indeterminate),只可以在代碼中把CheckState屬性改為IndeterminateCheckState獲取或設(shè)計(jì)復(fù)選框控件的狀態(tài),取值分別為Checked(選中)、Unchecked(未選中)和Indeterminate(不確定,控件旁邊的復(fù)選框通常是灰色的,表示復(fù)選框的當(dāng)前值是無(wú)效的,或者無(wú)法確定)CheckBox控件事件說(shuō)明CheckedChanged當(dāng)復(fù)選框的Checked屬性發(fā)生改變時(shí),就引發(fā)該事件。CheckedStateChanged當(dāng)CheckedState屬性改變時(shí),引發(fā)該事件。CheckBox控件演示示例ListBox控件屬性說(shuō)明Name獲取或設(shè)置列表框控件的名稱,一般用“l(fā)st+名稱”的方式命名。Items用于存放列表框中的所有選項(xiàng),是一個(gè)集合。使用該屬性,可以添加列表項(xiàng)、移除列表項(xiàng)和獲得列表項(xiàng)的數(shù)目。MultiColumn是否支持多列,當(dāng)值為true時(shí)表示支持多列,當(dāng)值為false時(shí)不支持多列。SelectedIndex獲取或設(shè)置ListBox控件中當(dāng)前選定項(xiàng)從零開始的索引。如果未選定任何項(xiàng),則返回值為1。Text該屬性用來(lái)獲取或搜索ListBox
控件中當(dāng)前選定項(xiàng)的文本。當(dāng)把此屬性值設(shè)置為字符串值時(shí),ListBox
控件將在列表框內(nèi)搜索與指定文本匹配的項(xiàng)并選擇該項(xiàng)。若在列表中選擇了一項(xiàng)或多項(xiàng),該屬性將返回第一個(gè)選定項(xiàng)的文本。ListBox控件屬性說(shuō)明ColumnWidth在包含多個(gè)列的列表框中,這個(gè)屬性指定列的寬度。SelectedItems它是一個(gè)集合可以獲取或設(shè)置ListBox中當(dāng)前選定的所有選項(xiàng)。Count用于返回列表框中列表項(xiàng)的個(gè)數(shù)。Sorted把這個(gè)屬性設(shè)置為true,會(huì)使列表框?qū)λ倪x項(xiàng)按照字母順序排序。SelectionMode
用來(lái)獲取或設(shè)置在ListBox控件中選擇列表項(xiàng)的方法。默認(rèn)為One:一次只能選擇一個(gè)選項(xiàng)。其它幾種模式為:CheckBox控件方法調(diào)用格式
說(shuō)明
Add()ListBox對(duì)象.Items.Add(“s”)把字符型參數(shù)s添加到“l(fā)istBox對(duì)象”指定的列表框的列表項(xiàng)中Insert()ListBox對(duì)象.Items.Insert(n,”s”)把字符型參數(shù)s插入到“l(fā)istBox對(duì)象”指定的列表框中索引為n的位置處。IndexOf()ListBox對(duì)象.Items.IndexOf(“s”);用于返回指定項(xiàng)s在集合中的索引Remove()ListBox對(duì)象.Items.Remove(“s”);從ListBox對(duì)象中移除字符型參數(shù)列表項(xiàng)sCheckBox控件方法調(diào)用格式
說(shuō)明
RemoveAt()ListBox對(duì)象.Items.RemoveAt(s);從ListBox對(duì)象移除指定索引號(hào)的列表項(xiàng)Clear()ListBox對(duì)象.Items.Clear()清除列表框中的所有項(xiàng)FindString()ListBox對(duì)象.Items.FindString("s")查找列表框中第一個(gè)以指定字符串s開頭的字符串CheckBox控件演示示例DateTimePicker控件
DateTimePicker控件
屬性說(shuō)明Name獲取或設(shè)置DateTimePicker控件的名稱,一般用“dtp+名稱”的方式命名。Value用于表示當(dāng)前日期/時(shí)間值。若當(dāng)前日期為“2008年4月22日10點(diǎn)12分28秒”,則表達(dá)式“dtpNow.Value”的值為“2008-4-2210:12:28”。Date用于獲取當(dāng)前日期/時(shí)間值的日期部分。若當(dāng)前日期為“2008年4月22日10點(diǎn)12分28秒”,則表達(dá)式“dtpNow.Value.Date”的值為“20
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年滬教新版七年級(jí)生物上冊(cè)階段測(cè)試試卷含答案
- 2024-2025學(xué)年江山市數(shù)學(xué)三上期末綜合測(cè)試模擬試題含解析
- 健康教育的新篇章跨學(xué)科合作在學(xué)校的應(yīng)用
- 2024年電力設(shè)施安裝勞務(wù)作業(yè)分包書
- 2024年專業(yè)會(huì)議資料定制與印制合同3篇
- 以數(shù)據(jù)驅(qū)動(dòng)的家庭健身計(jì)劃調(diào)整與優(yōu)化
- 辦公環(huán)境中如何幫助員工建立自信心
- 2025中國(guó)鐵塔集團(tuán)河南分公司招聘25人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)西電集團(tuán)(中國(guó)西電)招聘22人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)石化高橋石化分公司畢業(yè)生招聘30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 深交所創(chuàng)業(yè)板注冊(cè)制發(fā)行上市審核動(dòng)態(tài)(2020-2022)
- 電力系統(tǒng)繼電保護(hù)試題以及答案(二)
- 小學(xué)生防打架斗毆安全教育
- 燃?xì)庥邢薰就话l(fā)環(huán)境專項(xiàng)應(yīng)急預(yù)案
- 狼瘡性腦病的護(hù)理
- 2024版砂石料物流配送服務(wù)合同3篇
- 中華人民共和國(guó)保守國(guó)家秘密法實(shí)施條例培訓(xùn)課件
- 中醫(yī)醫(yī)術(shù)確有專長(zhǎng)人員醫(yī)師資格考核申報(bào)資料表
- 2024年中國(guó)電信運(yùn)營(yíng)商服務(wù)合同
- 2024年全國(guó)統(tǒng)一高考英語(yǔ)試卷(新課標(biāo)Ⅰ卷)含答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí) CCAA年度確認(rèn) 試題與答案
評(píng)論
0/150
提交評(píng)論