CWinForm實踐開發(fā)教程課件_第1頁
CWinForm實踐開發(fā)教程課件_第2頁
CWinForm實踐開發(fā)教程課件_第3頁
CWinForm實踐開發(fā)教程課件_第4頁
CWinForm實踐開發(fā)教程課件_第5頁
已閱讀5頁,還剩403頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于C#語言主講教師:錢哨a本課學(xué)時:72課時聯(lián)系方式:qianshao@Windows程序設(shè)計課程地位綜合基礎(chǔ)課程SQLServerXMLAjax[Javascript&XML]ASP.NETOracleRSSComputerBaseHTML&JavaScriptOOP\JavaCDatabaseBaseJSP/ServletEJB/WebServiceC#Struts/JSFTesting/SQALinuxWinForms第一章、Windows編程基礎(chǔ)本章主要內(nèi)容介紹

1.1windows和窗體

1.2VisualSIDE簡介

1.3事件處理CONTENTs1.1Windows和窗體本章學(xué)習(xí)目標(biāo):理解Windows窗體使用基本控件如標(biāo)簽、文本、按鈕、列表框和組合框掌握窗體的常用屬性和方法GUI界面控件1.1Windows和窗體各種控件屬性放置控件的區(qū)域1.1Windows和窗體WinForms應(yīng)用程序可能存在多個窗體,用于獲取用戶輸入的數(shù)據(jù)和向用戶顯示數(shù)據(jù)System.Windows.Forms

簡單而強大改善了接口和基類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è)計窗口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è)計器變量. ///</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è)計器支持所必需的

// 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";}項目的容器創(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());}程序的主入口點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)用該方法時,即使

Visible屬性設(shè)置為True,控件也不可見Show相當(dāng)于將控件的Visible屬性設(shè)置為True并顯示控件事件說明

Click用戶單擊控件時將發(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機密和敏感數(shù)據(jù),密碼輸入字符ReadOnly文本框中的文本為只讀Text檢索在控件中輸入的文本方法說明Clear刪除現(xiàn)有的所有文本事件說明KeyPress用戶按一個鍵結(jié)束時將發(fā)生該事件1.1.3WinForms中的常用控件

按鈕屬性說明Enabled確定是否可以啟用或禁用該控件方法說明PerformClickButton控件的Click事件

事件說明Click單擊按鈕時將觸發(fā)該事件1.1.3WinForms中的常用控件

案例:用戶登錄設(shè)計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("財務(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("財務(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ū)顯示的最大項目數(shù)方法說明Select在ComboBox控件上選定指定范圍的文本1.1.3WinForms中的常用控件

使用組合框privatevoidForm1_Load(objectsender,EventArgse){boBox1.Items.Add("財務(wù)部");boBox1.Items.Add("產(chǎn)品部");boBox1.Items.Add("銷售部");boBox1.Items.Add("生產(chǎn)部");//默認(rèn)的選擇是"產(chǎn)品部"boBox1.SelectedIndex=1;boBox2.Items.Add("財務(wù)部");boBox2.Items.Add("產(chǎn)品部");boBox2.Items.Add("銷售部");boBox2.Items.Add("生產(chǎn)部");//默認(rèn)的選擇是"產(chǎn)品部"boBox2.SelectedIndex=1;boBox3.Items.Add("財務(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(“選定的項目為\n"+str); Application.Exit();}應(yīng)用程序示例privatevoidcboDesignation_SelectedIndexChanged (objectsender,System.EventArgse){ MessageBox.Show(“您已經(jīng)選定了"+ this.cboDesignation.SelectedItem.ToString());}在退出應(yīng)用程序之前,使用MessageBox.Show()顯示在str變量中存儲選定項的消息框圖標(biāo)系統(tǒng)按鈕System.Windows.FormsControlScrollableControlContainerControlForm標(biāo)題欄控件1.1.4窗體容器簡介

1.1.4窗體容器簡介

SDI[單文檔界面]MDI[多文檔界面]1.1.5窗體的屬性屬性StartPosition初始窗口位置CancelButton按下esc鍵后執(zhí)行那個按鈕。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)窗體被激活時候發(fā)生

MdiChildActivate

當(dāng)MDI子窗體被激活時候發(fā)生

事件ActivatedClosedClosingLoad示例:顯示另一窗體示例:顯示另一窗體[被調(diào)用的窗體類][窗體實例]=new[被調(diào)用的窗體類]();[窗體實例].Show();下面,在菜單的單擊事件中寫下如下的事件。privatevoidmenuItem3_Click(objectsender,EventArgse){Form2Mdichild=newForm2();Mdichild.MdiParent=this;Mdichild.Show();}當(dāng)然,需要再建立兩個窗體對象,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ù)打開子窗體?。糠椒ǎ?/p>

直接檢測是否已經(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:另一種窗體之間的傳值技巧(一)

——傳單個值1、先在Form2中定義一個成員變量和一個屬性如下:

privatestringform2zhi=null;

publicstringForm2ChuanZhi

{

get

{

returnform2zhi;

}

}

2、再在Form3中定義一個成員變量和一個屬性如下:

privatestringform3zhi=null;

publicstringForm3ChuanZhi

{

set

{

form3zhi=value;

}

get

{

returnform3zhi;

}

}

3、雙擊btn_ChuanZhi在這個事件中寫入以下代碼(主要是顯示Form3窗體和將Form2中的值傳過去):

Form3form3=newForm3();

form3.Form3ChuanZhi=form2zhi;//將值傳過去

form3.Show();

代碼見下示例5:另一種窗體之間的傳值技巧(二)

——類保存任意值代碼見下Winform界面美化技巧1、從附件資料中確認(rèn)有第三方動態(tài)鏈接庫文件DotNetSkin.dll或者IrisSkin2.dll,這兩個文件是第三方開發(fā)設(shè)計的Winform界面美化的主要文件2、打開VS2005,展開工具箱,右鍵點擊界面選擇“添加選項卡”,新建選項卡“皮膚”Winform界面美化技巧4、在工具箱項窗口點擊“瀏覽”,導(dǎo)入第三方動態(tài)鏈接庫文件DotNetSkin.dll或者IrisSkin2.dll,兩個dll都是一樣的用,不同的是DotNetSkin.dll用的皮膚文件是*.skn,IrisSkin2.dll是用的*.ssk3、在工具箱的新建選項卡“皮膚”里面單擊右鍵,選擇“選擇項”,將展開選擇工具箱項Winform界面美化技巧5、則在工具箱的皮膚選項卡內(nèi)將出現(xiàn)皮膚控件。5、皮膚文件的基本用法是:拖拽任何一個皮膚控件到某個窗體上面,進(jìn)行如下的編碼:namespaceporjectname{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();this.skinEngine1.SkinFile="*.ssk";

或是

this.skinUI1.SkinFile="*.skn";}}}Winform界面美化技巧namespaceWindowsApplication1{publicpartialclassForm7:Form{publicForm7(){InitializeComponent();//this.skinEngine1.SkinFile="*.ssk";//stringpath=Environment.CurrentDirectory+"\\skn皮膚\\LE4-DEFAULT.skn";this.skinUI1.SkinFile=path;}}有關(guān)ssk文件和skn文件庫,請參見附件文件庫中相關(guān)文件總結(jié)WinForms可用于Windows窗體應(yīng)用程序開發(fā)Windows窗體控件是從System.Windows.Forms.Control類派生的類標(biāo)簽控件用于顯示用戶不能編輯的文本或圖像按鈕控件提供用戶與應(yīng)用程序交互的最簡便方法組合框控件是列表框控件和文本框控件的組合,用戶可以鍵入文本,也可以從所提供的列表中選擇項目窗體提供了收集、顯示和傳送信息的界面,是GUI的重要元素消息框顯示消息,用于與用戶交互基于C#語言主講教師:錢哨本課學(xué)時:72課時聯(lián)系方式:qianshao@Windows程序設(shè)計回顧WinForms可用于Windows窗體應(yīng)用程序開發(fā)Windows窗體控件是從System.Windows.Forms.Control類派生的類標(biāo)簽控件用于顯示用戶不能編輯的文本或圖像按鈕控件提供用戶與應(yīng)用程序交互的最簡便方法組合框控件是列表框控件和文本框控件的組合,用戶可以鍵入文本,也可以從所提供的列表中選擇項目窗體提供了收集、顯示和傳送信息的界面,是GUI的重要元素消息框顯示消息,用于與用戶交互第二章、WinForms控件本章主要內(nèi)容介紹

2.1WinForms的高級控件

2.2單(多)文檔操作及菜單

CONTENT本節(jié)學(xué)習(xí)目標(biāo):使用WinForms中的高級控件單選按鈕圖片框選項卡控件滾動條進(jìn)度條ImageList控件ToolBar控件StatusBar控件Timer控件TreeView控件ListView控件2.1Winforms的高級控件2.1.1單選按鈕(radioButton)Windows

窗體單選按鈕控件以組的形式使用單選按鈕允許用戶從多個選項中選擇一個選項屬性說明Appearance

RadioButton控件的顯示與命令按鈕相似Checked確定是否已選定控件方法說明Focus將輸入焦點移至控件2.1.1單選按鈕(radioButton)如何按功能分組Windows窗體RadioButton控件?1、在一個容器(如Panel控件、GroupBox控件或窗體)內(nèi)繪制單選按鈕即可將它們分組。2、若要添加不同的組,必須將它們放到面板或分組框中。

步驟:1、從“工具箱”的“Windows窗體”選項卡中,將GroupBox或Panel控件拖到窗體上。2、在GroupBox或Panel控件上繪制RadioButton控件。3、代碼見下。2.1.2圖片框圖片框控件表示可用于顯示圖像的Windows圖片框控件

顯示位圖、元文件、圖標(biāo)、JPEG、GIF或PNG等格式的圖形是一種圖形顯示控件屬性說明Image用于指定圖片框顯示的圖像。該圖像可在設(shè)計或運行時設(shè)置SizeMode用于指定圖像的顯示方式??梢灾付ǖ母鞣N大小模式包括AutoSize、CenterImage、Normal和StretchImage。默認(rèn)值為Normal方法說明Show顯示控件圖片框2.1.2圖片框練習(xí)1:使用設(shè)計器加載圖片(Windows窗體)練習(xí)2:運行時候修改圖片大小和位置

publicForm1(){InitializeComponent();showpic();}

publicvoidshowpic(){

pictureBox1.Image=Image.FromFile(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)+@"\image.gif");pictureBox1.SizeMode=System.Windows.Forms.PictureBoxSizeMode.StretchImage;}

privatevoidpictureBox1_Click(objectsender,EventArgse){if(pictureBox1.Image!=null){pictureBox1.Image.Dispose();pictureBox1.Image=null;}else{showpic();}}2.1.3選項卡控件在Windows應(yīng)用程序中,選項卡用于將相關(guān)的控件集中在一起,放在一個頁面中選項卡控件用于顯示多個選項卡,其中每個選項卡均可包含圖片和其他控件選項卡相當(dāng)于另一個窗體,可以容納其他控件選項卡控件選項卡控件的屬性屬性說明MultiLine指定是否可以顯示多行選項卡。如果可以顯示多行選項卡,該值應(yīng)為True,否則為False。默認(rèn)值為FalseSelectedIndex當(dāng)前所選選項卡頁的索引值。該屬性的值為當(dāng)前所選選項卡頁的基于0的索引。默認(rèn)值為-1,如果未選定選項卡頁,則為同一值SelectedTab當(dāng)前選定的選項卡頁。如果未選定選項卡頁,則值為NULL引用ShowToolTips指定在鼠標(biāo)移至選項卡時,是否應(yīng)顯示該選項卡的工具提示。如果對帶有工具提示的選項卡顯示工具提示,該值應(yīng)為True,否則為False【同時必須設(shè)置某頁的ToolTipText內(nèi)容】TabCount檢索選項卡控件中選項卡的數(shù)目SelectedIndexChanged更改SelectedIndex屬性值時,將觸發(fā)該事件選項卡控件的屬性屬性說明Alignment控制標(biāo)簽在標(biāo)簽控件的什么位置顯示。默認(rèn)的位置為控件的頂部Appearance控制標(biāo)簽的顯示方式。標(biāo)簽可以顯示為一般的按鈕或帶有平面樣式HotTrack如果這個屬性設(shè)置為true,則當(dāng)鼠標(biāo)指針滑過控件上的標(biāo)簽時,其外觀就會改變Multiline如果這個屬性設(shè)置為true,就可以有幾行標(biāo)簽RowCount返回當(dāng)前顯示的標(biāo)簽行數(shù)SelectedIndex返回或設(shè)置選中標(biāo)簽的索引TabPages這是控件中的TabPage對象集合。使用這個集合可以添加和刪除TabPage對象TabCount返回標(biāo)簽的總數(shù)SelectedTab返回或設(shè)置選中的標(biāo)簽。注意這個屬性在TabPages的實例上使用設(shè)定選項卡的數(shù)目或者綜合應(yīng)用程序示例(一)設(shè)定選項卡的提示信息總選項卡設(shè)計分選項卡屬性設(shè)計綜合應(yīng)用程序示例(二)統(tǒng)計頁面操作基本信息privatevoidtabControl1_SelectedIndexChanged(objectsender,EventArgse){label1.Text="當(dāng)前操作統(tǒng)計信息為:頁面為第"+this.tabControl1.SelectedIndex.ToString()+"頁,選項卡頁為"+tabControl1.SelectedTab.Text+",共有頁數(shù)"+tabControl1.TabCount.ToString();}綜合應(yīng)用程序示例(三)綜合應(yīng)用程序示例(四)使用窗體接受職員的個人信息和職業(yè)信息將使用單選按鈕、圖片框和選項卡控件應(yīng)用程序提供有兩個選項卡頁第一個選項卡頁顯示個人信息的文本框綜合應(yīng)用程序示例(四)第二個選項卡頁顯示職員信息的文本框綜合應(yīng)用程序示例(五)選項卡的基本操作2.1.4進(jìn)度條用于指示操作的進(jìn)度、完成的百分比外觀是排列在水平條中的一定數(shù)目的矩形進(jìn)度條的屬性和方法屬性說明Maximum進(jìn)度條控件的最大值。默認(rèn)值為100Minimum進(jìn)度條控件的最小值。進(jìn)度條從最小值開始遞增,直至達(dá)到最大值。默認(rèn)值為0StepPerformStep方法應(yīng)據(jù)以增加進(jìn)度條的光標(biāo)位置的值。默認(rèn)值為10Value進(jìn)度條控件中光標(biāo)的當(dāng)前位置。默認(rèn)值為0方法說明Increment按指定的遞增值移動進(jìn)度條的光標(biāo)位置PerformStep按Step屬性中指定的值移動進(jìn)度條的光標(biāo)位置案例見下:進(jìn)度條練習(xí)1:加載數(shù)據(jù)庫練習(xí)privatevoidbutton1_Click(objectsender,EventArgse){stringsqlstring="DataSource=(local);InitialCatalog=zrzx;UserID=sa";SqlConnectionconn=newSqlConnection(sqlstring);stringsql="select*fromtbl_advice";SqlCommandcmd=newSqlCommand(sql,conn);SqlDataAdapteradp=newSqlDataAdapter();adp.SelectCommand=cmd;DataSetds=newDataSet();adp.Fill(ds);conn.Dispose();conn.Close();conn=null;label1.Visible=true;progressBar1.Visible=true;progressBar1.Minimum=0;progressBar1.Maximum=ds.Tables[0].Rows.Count;progressBar1.BackColor=Color.Red;for(inti=0;i<ds.Tables[0].Rows.Count;i++){progressBar1.Value++;Application.DoEvents();this.label1.Text=progressBar1.Value.ToString();}}2.1.6ImageList控件屬性說明Images該屬性表示圖像列表中包含的圖像的集合ImageSize該屬性表示圖像的大小,默認(rèn)高度和寬度為16x16,最大大小為256x256方法說明Draw該方法用于繪制指定圖像ImageList控件的屬性和方法位于Systems.Windows.Forms命名空間內(nèi)imgImageList1.Images.Add(Image.FromFile("picture.gif"));this.picMyPicture.Image=this.imgImageList1.Images[0];在ImageList控件中添加圖像的代碼Image類的FromFile()方法用于手動將圖像文件添加到ImageList控件中2.1.6ImageList控件練習(xí)第一步:加載imagelist控件注意配置imagesize屬性第二步:配置images屬性,添加圖片信息第三步:添加一個toolbar控件第四步:指定toolbar的imagelist控件對象,并添加具體的button對象。兩個類ToolBarToolBarButton2.1.7ToolBar控件屬性說明Buttons工具欄按鈕控件的集合

ShowToolTips鼠標(biāo)移到各工具欄按鈕上時,是否顯示相應(yīng)的工具提示,如果該屬性的值設(shè)置為True,則顯示工具提示

事件說明ButtonClick單擊工具欄按鈕時,將觸發(fā)該事件ToolBar類的屬性和事件屬性說明ImageIndex為工具欄按鈕指定的圖像在圖像列表中的索引值

Parent指定工具欄按鈕所屬的ToolBar控件Style工具欄按鈕的樣式,其中包括DropDownButton(下拉按鈕)、Separator(分隔符)和ToggleButton(切換按鈕)

ToolTipText表示工具欄按鈕的工具提示文本ToolBarButton類的屬性和事件工具欄–示例創(chuàng)建名為Example1的Windows應(yīng)用程序。將Form1.cs更改為frmToolBarExample.cs。將ToolBar控件拖動到窗體上,并將它命名為tbrToolBar。選擇Buttons屬性,并單擊按鈕以顯示“ToolBarButton集合編輯器”窗口。添加三個按鈕。添加了三個按鈕輸出屏幕privatevoidtbrToolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse){

if(e.Button==this.tbrToolBar.Buttons[0]) {

MessageBox.Show(“已單擊“打開”按鈕"); }}處理ButtonClick事件的代碼案例第一步:添加toolbar控件第二步:設(shè)置toolbar屬性第三步:添加5個button第四步:添加imagelist控件第五步:配置imagelist的images屬性privatevoidForm2_Load(objectsender,EventArgse){toolBar1.ImageList=imageList;

toolBarButton1.ImageIndex=0;toolBarButton2.ImageIndex=1;toolBarButton3.ImageIndex=2;toolBarButton4.ImageIndex=3;toolBarButton5.ImageIndex=4;}2.1.8statusStrip

控件StatusStripStatusLabel使用文本和圖像向用戶顯示應(yīng)用程序當(dāng)前狀態(tài)的信息。案例:統(tǒng)計文本字?jǐn)?shù)信息【代碼見下】2.1.8statusStrip

控件案例:c#winForm將窗體狀態(tài)欄StatusStrip分成左中右三部分右邊顯示當(dāng)前時間

通過StatusStrip顯示窗體狀態(tài)欄

同時將狀態(tài)欄分成三部分

居左邊顯示相關(guān)文字信息

中間空白顯示

居右邊顯示時間信息【具體實現(xiàn)見下】2.1.8statusStrip

控件案例:c#StatusStrip通過什么方式顯示進(jìn)度?

2.1.9Timer控件簡介03:15:04在應(yīng)用程序中顯示實際時間按指定的時間長度顯示圖像需要一種可在程序運行時操控時間的機制WinForms的Timer控件2.1.9Timer控件簡介拖放2.1.9Timer控件簡介對特定的時刻響應(yīng)按照某個周期觸發(fā)事件與用戶無關(guān),可以通過編程,在規(guī)定的時刻執(zhí)行相應(yīng)動作組件與其他控件不同,它不向用戶提供用戶界面,因此沒有必要顯示在WinForms設(shè)計器的界面上Timer類包含在System.Windows.Forms命名空間中2.1.9Timer控件的必要性Timer控件為開發(fā)人員提供了一種在經(jīng)過指定的時間間隔或到達(dá)指定的絕對時間時根據(jù)代碼進(jìn)行響應(yīng)的方式2.1.9Timer控件的屬性、方法和事件屬性EnabledInterval時間間隔毫秒數(shù)方法Start()時鐘啟動Stop()時鐘停止事件Tick每隔Interval時間間隔觸發(fā)一次Timer控件名的前綴是"tmr“例如:tmrTicker,tmrTickTimerTimer控件應(yīng)用程序示例1要求顯示計算機運行的時間長度和應(yīng)用程序運行的時間長度Timer控件應(yīng)用程序示例1動畫演示:移動的畫面privatevoidbutton1_Click(objectsender,EventArgse){timer1.Start();}privatevoidbutton2_Click(objectsender,EventArgse){timer1.Stop();}privatevoidtimer1_Tick(objectsender,EventArgse){pictureBox1.Left-=5;if(pictureBox1.Right<0){pictureBox1.Left=Width;}}Timer控件應(yīng)用程序示例2publicclassfrmTickCounter:System.Windows.Forms.Form{ privateintcompuTime; …..為窗體聲明一個私有整型變量privatevoidfrmTickCounter_Load(objectsender,System.EventArgse){ compuTime=Environment.TickCount;}frmTickCounter窗體的Load事件Timer控件應(yīng)用程序示例2privatevoidtmrTickTimer_Tick(objectsender,System.EventArgse){

longcurTickValue=Environment.TickCount;

longdifference=curTickValue-compuTime;

longcomputerHours,computerMinutes,computerSeconds;

longapplicationHours,applicationMinutes,applicationSeconds;//將毫秒轉(zhuǎn)換成小時、分鐘和秒

computerHours=(curTickValue/(3600*999))%24;

computerHours=(curTickValue/(3600*999))%24;

computerMinutes=(curTickValue/(60*999))%60;

computerSeconds=(curTickValue/999)%60;

applicationHours=(difference/(3600*999))%24;

applicationMinutes=(difference/(60*999))%60;

applicationSeconds=(difference/999)%60;

應(yīng)用程序中使用的局部變量將毫秒轉(zhuǎn)換成小時、分鐘和秒Timer控件應(yīng)用程序示例2this.lblComputer.Text=String.Format(“這臺計算機已經(jīng)開機{0}小時,{1}分鐘{2}秒",computerHours.ToString(),computerMinutes.ToString(),computerSeconds.ToString());this.lblApplication.Text=String.Format(“這個程序已經(jīng)運行了{(lán)0}小時,{1}分鐘{2}秒",applicationHours.ToString(),applicationMinutes.ToString(),applicationSeconds.ToString());}顯示每個標(biāo)簽的輸出結(jié)果privatevoidbtnClose_Click(objectsender,System.EventArgse){ this.Close();}關(guān)閉應(yīng)用程序Timer控件應(yīng)用程序示例3流失的時間:1.用.net建立一個Windows應(yīng)用程序2.在項目下添加一個類命名為“Time“3.編寫“Time“類得實現(xiàn)代碼4.在窗體中放兩個Label控件和一個時鐘(Timer)控件5.編寫窗體得Load事件和(Timer)控件的Tick事件【代碼見下】2.1.10ListView控件可折疊的TreeViewListView選擇列出項目的視圖類型2.1.10ListView控件創(chuàng)建與Windows資源管理器的右窗口相似的用戶界面可用于以特定樣式或視圖類型顯示列表項四種視圖模式,即大圖標(biāo)、小圖標(biāo)、列表和詳細(xì)資料ListView控件的屬性和方法屬性ItemsListView中的具體內(nèi)容MultiSelect允許選擇多個項SelectedItems用戶選擇的listview行Sorting指定進(jìn)行排序的方式column詳細(xì)視圖中顯示的列信息View選擇五種視圖中的一種方法Clear()徹度清除視圖,刪除所有的選項和列GetItemAt()返回列表視圖中位於x,y的選項Sort()ListView控件名的前綴是“l(fā)vw“如:lvwList,lvwListItemsBeginUpdate開始更新,直到調(diào)用EmdUpdate為止。當(dāng)一次插入多個選項使用這個方法很有用,因為它會禁止視圖閃爍,並可以大大提高速度EndUpdate結(jié)束更新Column集合和Column對象ListView控件的Columns屬性表示控件中出現(xiàn)的所有列標(biāo)題的集合列標(biāo)題是ListView控件中包含標(biāo)題文本的一個項ColumnHeader對象定義在控件的View屬性設(shè)置為“Details”值時,作為ListView控件的一部分顯示的那些列如果ListView控件沒有沒有任何列標(biāo)題,并且View屬性設(shè)置為Details,則ListView控件不顯示任何項ListView控件的編輯列,組和項案例1、編輯列ListView控件的編輯列,組和項案例1、編輯列ListView控件的編輯列,組和項案例1、編輯列項集合和項對象ListView控件的Items屬性表示包含控件中所有項的集合該屬性返回ListView.ListViewItemCollection,可以用于ListView中添加新項、刪除項或計算可用項數(shù)

案例2、添加刪除記錄

privatevoidForm2_Load(objectsender,EventArgse){ColumnHeaderobjheader=newColumnHeader();objheader.Text="姓名";objheader.TextAlign=HorizontalAlignment.Center;objheader.Width=40;listView1.Columns.Add(objheader);}privatevoidbutton1_Click(objectsender,EventArgse){listView1.Columns.Add("年齡",40,HorizontalAlignment.Center);listView1.Columns.Add("班級",40,HorizontalAlignment.Center);

listView1.Columns.Add("性別",40,HorizontalAlignment.Center);listView1.Columns.Add("職業(yè)",40,HorizontalAlignment.Center);button1.Enabled=false;}

privatevoidbutton2_Click(objectsender,EventArgse){listView1.Columns.Remove(listView1.Columns[1]);}案例3:案例見下:如何各行顯示不同顏色?for(inti=0;i<this.listViewControl.Items.Count;i++){if(i%2==0){this.listViewControl.Items[i].BackColor=Color.Gray;}}案例4:清除列、全部、顯示某行信息

privatevoidbutton4_Click(objectsender,EventArgse){this.listView1.Clear();}privatevoidbutton5_Click(objectsender,EventArgse){listView1.Items.Clear();}privatevoidlistView1_SelectedIndexChanged(objectsender,EventArgse){foreach(ListViewItemlstinlistView1.SelectedItems){//在這里對lst進(jìn)行處理,lst代表每一個被選中的ListViewItemMessageBox.Show(lst.Text);//這里示例顯示每一個被選中的項的第一列的文本

}}通過代碼生成見下案例5:從數(shù)據(jù)庫之中讀取數(shù)據(jù),并在listview之中顯示2.1.11TreeView控件2.1.12TreeView控件用于以節(jié)點形式顯示文本或數(shù)據(jù),這些節(jié)點按層次結(jié)構(gòu)順序排列Windows資源管理器中左窗格所包含的目錄和文件是以樹型視圖樣式排列的在TreeView控件中,復(fù)選框和圖標(biāo)可以和文本一起顯示節(jié)點集和節(jié)點對象TreeView控件的Nodes屬性表示為TreeView控件指定的樹節(jié)點集樹節(jié)點集中的每個樹節(jié)點對象可包括它本身的樹節(jié)點集樹節(jié)點集中Add()、Remove()和RemoveAt()方法使開發(fā)人員可添加和移動集中的單個樹節(jié)點

添加、修改和刪除節(jié)點TreeView控件以層次結(jié)構(gòu)方式顯示節(jié)點在將新節(jié)點添加到現(xiàn)有TreeView時,重要的是注意新節(jié)點所添加到的父節(jié)點可用設(shè)計器模式或用戶界面在TreeView上添加或刪除節(jié)點添加、修改和刪除節(jié)點在窗體上選擇已存在的TreeView控件或在窗體上添加一個新控

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論