版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程地位綜合基礎(chǔ)課程SQLServerXMLAjax[Javascript&XML]ASP.NETOracleRSSComputerBaseHTML&JavaScriptOOP\JavaCDatabaseBaseJSP/ServletEJB/WebServiceC#Struts/JSFTesting/SQALinuxWinForms第一章、Windows編程基礎(chǔ)本章主要內(nèi)容介紹
1.1windows和窗體
1.2VisualStutio.netIDE簡(jiǎn)介
1.3事件處理CONTENT1.1Windows和窗體本章學(xué)習(xí)目標(biāo):理解Windows窗體使用基本控件如標(biāo)簽、文本、按鈕、列表框和組合框掌握窗體的常用屬性和方法GUI界面控件1.1Windows和窗體各種控件屬性放置控件的區(qū)域1.1Windows和窗體WinForms應(yīng)用程序可能存在多個(gè)窗體,用于獲取用戶輸入的數(shù)據(jù)和向用戶顯示數(shù)據(jù)System.Windows.Forms
簡(jiǎn)單而強(qiáng)大改善了接口和基類IntelliSense
新的管理數(shù)據(jù)提供程序
安全
靈活的控件
通曉數(shù)據(jù)
向?qū)?.1Windows和窗體1.1.2創(chuàng)建WinForms應(yīng)用程序“開(kāi)始”
“程序”
“MicrosoftVisualStudio.NET2005”
“MicrosoftVisualStudio.NET2005”創(chuàng)建WinForms應(yīng)用程序6-2設(shè)計(jì)窗口1.1.2創(chuàng)建WinForms應(yīng)用程序usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;namespaceSampleProject{ ///<summary> ///Form1的摘要說(shuō)明。
///</summary> publicclassForm1:System.Windows.Forms.Form { ///<summary> ///必需的設(shè)計(jì)器變量. ///</summary>提供了大量繪圖工具的訪問(wèn)權(quán)限基礎(chǔ)核心命名空間ArrayList、BitArray、Hashtable、Stack、StringCollection和StringTable類大量窗體和控件從
System.Windows.Forms.Form派生VisualStudio.NET生成的代碼1.1.2創(chuàng)建WinForms應(yīng)用程序privateSystem.ComponentModel.Containercomponents=null;publicForm1(){ // //Windows窗體設(shè)計(jì)器支持所必需的
// InitializeComponent(); // //TODO:在InitializeComponent調(diào)用之后 添加任何構(gòu)造函數(shù)代碼
//}
構(gòu)造函數(shù)調(diào)用InitializeComponent()方法//下面代碼見(jiàn):Form1.Designer.cs文件privatevoidInitializeComponent(){ponents=newSystem.ComponentModel.Container();this.Size=newSystem.Drawing.Size(300,300);this.Text="Form1";}項(xiàng)目的容器創(chuàng)建WinForms應(yīng)用程序///<summary>///清理所有正在使用的資源?!鞠旅娲a:Form1.Designer.cs】///</summary>protectedoverridevoidDispose(booldisposing){ if(disposing) { if(components!=null)
{ components.Dispose(); } } base.Dispose(disposing);}釋放系統(tǒng)資源1.1.2創(chuàng)建WinForms應(yīng)用程序//下面代碼見(jiàn):program.cs文件[STAThread]staticvoidMain(){ Application.Run(newForm1());}程序的主入口點(diǎn)1.1.3WinForms中的常用控件可視化界面組件統(tǒng)稱為控件System.Windows.Forms.ControlSystem.Windows.FormsControlButtonBaseButtonCheckBoxLabelListControlComboBoxListBoxTextBoxBaseTextBoxRadioButton1.1.3WinForms中的常用控件
標(biāo)簽按鈕組合框列表框文本框標(biāo)簽屬性說(shuō)明Text該屬性用于設(shè)置或獲取與該控件關(guān)聯(lián)的文本方法說(shuō)明Hide隱藏控件,調(diào)用該方法時(shí),即使
Visible屬性設(shè)置為True,控件也不可見(jiàn)Show相當(dāng)于將控件的Visible屬性設(shè)置為True并顯示控件事件說(shuō)明
Click用戶單擊控件時(shí)將發(fā)生該事件1.1.3WinForms中的常用控件
標(biāo)簽控件按鈕控件文本框控件列表控件組合框控件privatevoidlinkLabel1_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse){linkLabel1.LinkVisited=true;Form2newform=newForm2();newform.Show();this.Hide();}privatevoidlinkLabel2_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse){//label2.Visible=true;label2.Show();}privatevoidlinkLabel3_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse){label2.Visible=false;label2.Hide();}
案例:窗口的打開(kāi)和關(guān)閉文本框?qū)傩哉f(shuō)明MaxLength可在文本框中輸入的最大字符數(shù)Multiline表示是否可在文本框中輸入多行文本Passwordchar機(jī)密和敏感數(shù)據(jù),密碼輸入字符ReadOnly文本框中的文本為只讀Text檢索在控件中輸入的文本方法說(shuō)明Clear刪除現(xiàn)有的所有文本事件說(shuō)明KeyPress用戶按一個(gè)鍵結(jié)束時(shí)將發(fā)生該事件1.1.3WinForms中的常用控件
按鈕屬性說(shuō)明Enabled確定是否可以啟用或禁用該控件方法說(shuō)明PerformClickButton控件的Click事件
事件說(shuō)明Click單擊按鈕時(shí)將觸發(fā)該事件1.1.3WinForms中的常用控件
案例:用戶登錄設(shè)計(jì)privatevoidbutton2_Click(objectsender,EventArgse){clear();}privatevoidbutton1_Click(objectsender,EventArgse){if(textBox1.Text==string.Empty||textBox2.Text==string.Empty){MessageBox.Show("信息禁止為空!","登錄提示");clear();return;}if(!textBox1.Text.Equals("admin")||!textBox2.Text.Equals("admin")){MessageBox.Show("用戶名稱或密碼為空!","登錄提示");clear();return;}else{MessageBox.Show("歡迎您登錄本系統(tǒng)!","消息提示");clear();}}publicvoidclear(){textBox1.Clear();textBox2.Clear();textBox2.Focus();}列表框?qū)傩訧temsSelectionMode
SelectedIndex
SelectedItemSelectedItems
Text
方法ClearSelected事件SelectedIndexChanged1.1.3WinForms中的常用控件
使用列表框(1)privatevoidForm1_Load(objectsender,EventArgse){this.listBox1.Items.Add("軟件部");this.listBox1.Items.Add("硬件部");this.listBox1.Items.Add("財(cái)務(wù)部");this.listBox1.Items.Add("人事部");}privatevoidlistBox1_SelectedIndexChanged(objectsender,EventArgse){MessageBox.Show("您選擇的部門是:"+listBox1.SelectedItem.ToString()+",位列第"+listBox1.SelectedIndex.ToString(),"信息提示");}使用列表框(2)privatevoidbutton1_Click(objectsender,EventArgse){listBox1.Items.Clear();listBox1.Items.Add("軟件部");listBox1.Items.Add("硬件部");listBox1.Items.Add("財(cái)務(wù)部");listBox1.Items.Add("人事部");}privatevoidbutton2_Click(objectsender,EventArgse){listBox1.Items.Insert(2,"插入值");label1.Text="已經(jīng)添加"+listBox1.Items.Count.ToString()+"條記錄";}組合框?qū)傩哉f(shuō)明DropDownStyleComboBox控件的樣式MaxDropDownItems下拉區(qū)顯示的最大項(xiàng)目數(shù)方法說(shuō)明Select在ComboBox控件上選定指定范圍的文本1.1.3WinForms中的常用控件
使用組合框privatevoidForm1_Load(objectsender,EventArgse){boBox1.Items.Add("財(cái)務(wù)部");boBox1.Items.Add("產(chǎn)品部");boBox1.Items.Add("銷售部");boBox1.Items.Add("生產(chǎn)部");//默認(rèn)的選擇是"產(chǎn)品部"boBox1.SelectedIndex=1;boBox2.Items.Add("財(cái)務(wù)部");boBox2.Items.Add("產(chǎn)品部");boBox2.Items.Add("銷售部");boBox2.Items.Add("生產(chǎn)部");//默認(rèn)的選擇是"產(chǎn)品部"boBox2.SelectedIndex=1;boBox3.Items.Add("財(cái)務(wù)部");boBox3.Items.Add("產(chǎn)品部");boBox3.Items.Add("銷售部");boBox3.Items.Add("生產(chǎn)部");//默認(rèn)的選擇是"產(chǎn)品部"boBox3.SelectedIndex=1;}消息框窗口MessageBox.Show(“[消息文本]");消息框用于顯示消息Abort,Cancel,Ignore,No,None,Ok,Retry和Yesif(MessageBox.Show(“保存文件”,“保存",MessageBoxButtons.YesNo,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1)==DialogResult.Yes){ //保存文件所用的代碼
//保存后的MessageBox }1.1.3WinForms中的常用控件
消息框窗口重載方法Show(stringtext);Show(stringtext,stringcaption);Show(stringtext,stringcaption,MessageBoxButtonsbuttons);Show(stringtext,stringcaption,MessageBoxButtonsbuttons,MessageBoxIconicon);……privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("嘿,這是簡(jiǎn)單提示!","信息提示");}privatevoidbutton2_Click(objectsender,EventArgse){DialogResultresult=MessageBox.Show("嘿,這是問(wèn)詢提示!","問(wèn)詢提示",MessageBoxButtons.YesNo);if(result==DialogResult.Yes){label1.Text="您選擇了YES";
}else{label1.Text="您選擇了NO";}}privatevoidbutton3_Click(objectsender,EventArgse){DialogResultresult=MessageBox.Show("嘿,這是帶有圖標(biāo)的問(wèn)詢提示!","問(wèn)詢提示",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button3,MessageBoxOptions.RightAlign);if(result==DialogResult.Yes){label1.Text="您選擇了圖標(biāo)YES";}elseif(result==DialogResult.Cancel){label1.Text="您選擇了圖標(biāo)取消";}elseif(result==DialogResult.No){label1.Text="您選擇了圖標(biāo)NO";}}應(yīng)用程序示例
解決方案資源管理器屬性窗口工具箱應(yīng)用程序示例privatevoidbtnAdd_Click(objectsender,System.EventArgse){
}privatevoidbtnAdd_Click(objectsender,System.EventArgse){ this.txtEmpName.Enabled=true; this.txtAddress.Enabled=true; this.cboDesignation.Enabled=true; this.lstCurrDeptName.Enabled=true;}privatevoidbtnCancel_Click(objectsender,System.EventArgse){ this.txtEmpName.Text=""; this.txtAddress.Text=""; this.cboDesignation.Text=“經(jīng)理"; }privatevoidbtnExit_Click(objectsender,System.EventArgse){ stringstr=""; for(intctr=0;ctr<=this.lstCurrDeptName.SelectedItems.Count-1; ctr++) str+="\n"+this.lstCurrDeptName.SelectedItems[ctr].ToString(); MessageBox.Show(“選定的項(xiàng)目為\n"+str); Application.Exit();}應(yīng)用程序示例privatevoidcboDesignation_SelectedIndexChanged (objectsender,System.EventArgse){ MessageBox.Show(“您已經(jīng)選定了"+ this.cboDesignation.SelectedItem.ToString());}在退出應(yīng)用程序之前,使用MessageBox.Show()顯示在str變量中存儲(chǔ)選定項(xiàng)的消息框圖標(biāo)系統(tǒng)按鈕System.Windows.FormsControlScrollableControlContainerControlForm標(biāo)題欄控件1.1.4窗體容器簡(jiǎn)介
1.1.4窗體容器簡(jiǎn)介
SDI[單文檔界面]MDI[多文檔界面]1.1.5窗體的屬性屬性StartPosition初始窗口位置CancelButton按下esc鍵后執(zhí)行那個(gè)按鈕。ControlBox確定系統(tǒng)是否有圖標(biāo)和最大最小關(guān)閉按鈕。FormBorderStyle指定邊框和標(biāo)題欄的外觀和行為。HelpButton確定窗體的標(biāo)題欄上是否有幫助按鈕。KeyPreview確定窗體鍵盤事件是否已經(jīng)向窗體注冊(cè)。MainMenuStrip確定鍵盤激活和多文檔合并。ShowInTaskbar確定窗體是否出現(xiàn)在任務(wù)欄中。WindowState確定窗體的初始可視狀態(tài)。1.1.5窗體的常用方法和事件方法Activate當(dāng)窗體被激活時(shí)候發(fā)生
MdiChildActivate
當(dāng)MDI子窗體被激活時(shí)候發(fā)生
事件ActivatedClosedClosingLoad示例:顯示另一窗體示例:顯示另一窗體[被調(diào)用的窗體類][窗體實(shí)例]=new[被調(diào)用的窗體類]();[窗體實(shí)例].Show();下面,在菜單的單擊事件中寫(xiě)下如下的事件。privatevoidmenuItem3_Click(objectsender,EventArgse){Form2Mdichild=newForm2();Mdichild.MdiParent=this;Mdichild.Show();}當(dāng)然,需要再建立兩個(gè)窗體對(duì)象,form2和form3窗體示例1:在form2窗體中進(jìn)行如下操作單擊“發(fā)送”按鈕應(yīng)用程序示例首先,將form2的comboBox1下拉框填充完畢后,增加load事件privatevoidForm2_Load(objectsender,EventArgse){comboBox1.SelectedIndex=0;textBox3.Text="";textBox1.Focus();}其次,添加form2的發(fā)送信息事件publicvoidbutton1_Click(objectsender,EventArgse){if(textBox1.Text==""||textBox2.Text==""||comboBox1.Text==""){MessageBox.Show("姓名,或者郵件,或者提交,信息禁止為空!","信息提示");}else{this.Hide();
Form3childform3=newForm3(this.textBox1.Text,this.textBox2.Text,boBox1.SelectedItem.ToString(),this.textBox3.Text);childform3.Show();}}最后關(guān)閉窗體事件:privatevoidbutton2_Click(objectsender,EventArgse){this.Close();}應(yīng)用程序示例對(duì)于form3窗體而言,在系統(tǒng)初始事件填寫(xiě)如下代碼:publicpartialclassForm3:Form{privatestring_name;privatestring_emailId;privatestring_subject;privatestring_feedBack;publicForm3(stringvarName,stringvarEmail,stringvarSubject,stringvarFeedBack){InitializeComponent();//在private變量中存儲(chǔ)值
this._name=varName;this._emailId=varEmail;this._subject=varSubject;this._feedBack=varFeedBack;//在列表框中放置值
listBox1.Items.Add("姓名:"+this._name);listBox1.Items.Add("郵件地址:"+this._emailId);listBox1.Items.Add("信息主題:"+this._subject);listBox1.Items.Add("反饋意見(jiàn):"+this._feedBack);}privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("感謝您輸入的反饋!");this.Close();}}示例2:在MDI父窗口中,子窗口如何彼此之間傳遞信息?代碼見(jiàn)下示例3:如何防止重復(fù)打開(kāi)子窗體???方法:
直接檢測(cè)是否已經(jīng)打開(kāi)此MDI窗體
//是否已經(jīng)打開(kāi)了?(用循環(huán)來(lái)判斷)
foreach(FormchildrenForminthis.MdiChildren)
{
//檢測(cè)是不是當(dāng)前子窗體名稱
if(childrenForm.Name=="子窗體名稱")
{
//是的話就是把他顯示
childrenForm.Visible=true;
//并激活該窗體
childrenForm.Activate();
return;
}
}
//下面是打開(kāi)子窗體
Form1childrenForm=newForm1();
childrenForm.MdiParent=this;
childrenForm.Show();
childrenForm.WindowState=FormWindowState.Maximized;
示例4:另一種窗體之間的傳值技巧(一)
——傳單個(gè)值1、先在Form2中定義一個(gè)成員變量和一個(gè)屬性如下:
privatestringform2zhi=null;
publicstringForm2ChuanZhi
{
get
{
returnform2zhi;
}
}
2、再在Form3中定義一個(gè)成員變量和一個(gè)屬性如下:
privatestringform3zhi=null;
publicstringForm3ChuanZhi
{
set
{
form3zhi=value;
}
get
{
returnform3zhi;
}
}
3、雙擊btn_ChuanZhi在這個(gè)事件中寫(xiě)入以下代碼(主要是顯示Form3窗體和將Form2中的值傳過(guò)去):
Form3form3=newForm3();
form3.Form3ChuanZhi=form2zhi;//將值傳過(guò)去
form3.S
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑行業(yè)工資集體合同范本
- 幼兒園自制食品管理標(biāo)準(zhǔn)
- 托班公交安全
- 阿司匹林致消化道出血護(hù)理
- 機(jī)場(chǎng)防雷應(yīng)急預(yù)案
- 推普周教育培訓(xùn)總結(jié)
- 項(xiàng)目安全培訓(xùn)試題完整答案
- 金融期權(quán)市場(chǎng)
- 高校學(xué)術(shù)不端行為扣分制度
- 親子活動(dòng)策劃與執(zhí)行方案
- 大學(xué)美育 課件 第四篇 科技之美 第二章第一節(jié) 高鐵之美;第二節(jié) 橋梁之美;第三節(jié) 公路之美
- GRS化學(xué)品管理手冊(cè)
- 第1章 跨境電商概述
- TSHUA 2023-0002 無(wú)人機(jī)飛控系統(tǒng)適航性檢驗(yàn)檢測(cè)技術(shù)規(guī)范
- 2024-2025學(xué)年七年級(jí)道德與法治上冊(cè) 第二單元 單元測(cè)試卷(人教陜西版)
- 畜牧學(xué)基礎(chǔ)知識(shí)題庫(kù)100道及答案(完整版)
- 人教版數(shù)學(xué)八年級(jí)上冊(cè)14.3.2《平方差公式》說(shuō)課稿
- 50以內(nèi)加減運(yùn)算口算題卡600道
- 變電站工程施工作業(yè)四措一案
- 2024漢服趨勢(shì)白皮書(shū)-京東
- 工業(yè)循環(huán)冷卻水中鋅離子測(cè)定方法
評(píng)論
0/150
提交評(píng)論