版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程地位綜合基礎(chǔ)課程SQLServerXMLAjax[Javascript&XML]ASP.NETOracleRSSComputerBaseHTML&JavaScriptOOP\JavaCDatabaseBaseJSP/ServletEJB/WebServiceC#Struts/JSFTesting/SQALinuxWinForms第一章、Windows編程基礎(chǔ)本章主要內(nèi)容介紹
1.1windows和窗體
1.2VisualStutio.netIDE簡介
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
簡單而強(qiáng)大改善了接口和基類IntelliSense
新的管理數(shù)據(jù)提供程序
安全
靈活的控件
通曉數(shù)據(jù)
向?qū)?.1Windows和窗體1.1.2創(chuàng)建WinForms應(yīng)用程序“開始”
“程序”
“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的摘要說明。
///</summary> publicclassForm1:System.Windows.Forms.Form { ///<summary> ///必需的設(shè)計(jì)器變量. ///</summary>提供了大量繪圖工具的訪問權(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()方法//下面代碼見: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)用程序//下面代碼見: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)簽屬性說明Text該屬性用于設(shè)置或獲取與該控件關(guān)聯(lián)的文本方法說明Hide隱藏控件,調(diào)用該方法時(shí),即使
Visible屬性設(shè)置為True,控件也不可見Show相當(dāng)于將控件的Visible屬性設(shè)置為True并顯示控件事件說明
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();}
案例:窗口的打開和關(guān)閉文本框?qū)傩哉f明MaxLength可在文本框中輸入的最大字符數(shù)Multiline表示是否可在文本框中輸入多行文本Passwordchar機(jī)密和敏感數(shù)據(jù),密碼輸入字符ReadOnly文本框中的文本為只讀Text檢索在控件中輸入的文本方法說明Clear刪除現(xiàn)有的所有文本事件說明KeyPress用戶按一個(gè)鍵結(jié)束時(shí)將發(fā)生該事件1.1.3WinForms中的常用控件
按鈕屬性說明Enabled確定是否可以啟用或禁用該控件方法說明PerformClickButton控件的Click事件
事件說明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明DropDownStyleComboBox控件的樣式MaxDropDownItems下拉區(qū)顯示的最大項(xiàng)目數(shù)方法說明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("嘿,這是簡單提示!","信息提示");}privatevoidbutton2_Click(objectsender,EventArgse){DialogResultresult=MessageBox.Show("嘿,這是問詢提示!","問詢提示",MessageBoxButtons.YesNo);if(result==DialogResult.Yes){label1.Text="您選擇了YES";
}else{label1.Text="您選擇了NO";}}privatevoidbutton3_Click(objectsender,EventArgse){DialogResultresult=MessageBox.Show("嘿,這是帶有圖標(biāo)的問詢提示!","問詢提示",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變量中存儲選定項(xiàng)的消息框圖標(biāo)系統(tǒng)按鈕System.Windows.FormsControlScrollableControlContainerControlForm標(biāo)題欄控件1.1.4窗體容器簡介
1.1.4窗體容器簡介
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)向窗體注冊。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();下面,在菜單的單擊事件中寫下如下的事件。privatevoidmenuItem3_Click(objectsender,EventArgse){Form2Mdichild=newForm2();Mdichild.MdiParent=this;Mdichild.Show();}當(dāng)然,需要再建立兩個(gè)窗體對象,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)用程序示例對于form3窗體而言,在系統(tǒng)初始事件填寫如下代碼:publicpartialclassForm3:Form{privatestring_name;privatestring_emailId;privatestring_subject;privatestring_feedBack;publicForm3(stringvarName,stringvarEmail,stringvarSubject,stringvarFeedBack){InitializeComponent();//在private變量中存儲值
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("反饋意見:"+this._feedBack);}privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("感謝您輸入的反饋!");this.Close();}}示例2:在MDI父窗口中,子窗口如何彼此之間傳遞信息?代碼見下示例3:如何防止重復(fù)打開子窗體???方法:
直接檢測是否已經(jīng)打開此MDI窗體
//是否已經(jīng)打開了?(用循環(huán)來判斷)
foreach(FormchildrenForminthis.MdiChildren)
{
//檢測是不是當(dāng)前子窗體名稱
if(childrenForm.Name=="子窗體名稱")
{
//是的話就是把他顯示
childrenForm.Visible=true;
//并激活該窗體
childrenForm.Activate();
return;
}
}
//下面是打開子窗體
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è)事件中寫入以下代碼(主要是顯示Form3窗體和將Form2中的值傳過去):
Form3form3=newForm3();
form3.Form3ChuanZhi=form2zhi;//將值傳過去
form3.S
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南充文化旅游職業(yè)學(xué)院《排練與實(shí)踐5》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌職業(yè)大學(xué)《建筑表現(xiàn)與技法》2023-2024學(xué)年第一學(xué)期期末試卷
- 明達(dá)職業(yè)技術(shù)學(xué)院《現(xiàn)當(dāng)代小說與中學(xué)語文教學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 閩南師范大學(xué)《教育學(xué)原理(教育概論)》2023-2024學(xué)年第一學(xué)期期末試卷
- 民辦萬博科技職業(yè)學(xué)院《書法藝術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 馬鞍山師范高等??茖W(xué)?!豆芾韯?chuàng)新》2023-2024學(xué)年第一學(xué)期期末試卷
- 漯河醫(yī)學(xué)高等??茖W(xué)校《材料成型及控制工程專業(yè)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版建筑工程造價(jià)咨詢服務(wù)協(xié)議范本18篇
- 遼寧中醫(yī)藥大學(xué)《地球表層系統(tǒng)科學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 遼寧醫(yī)藥職業(yè)學(xué)院《建筑工業(yè)化》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年秋季學(xué)期學(xué)校辦公室工作總結(jié)
- 上海市12校2025屆高三第一次模擬考試英語試卷含解析
- 三年級數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案集錦
- 鋪大棚膜合同模板
- 長亭送別完整版本
- 《鐵路軌道維護(hù)》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 2024年安徽省公務(wù)員錄用考試《行測》真題及解析
- 你比我猜題庫課件
評論
0/150
提交評論