CSharp-WinForm實(shí)踐開(kāi)發(fā)教程課件(全)_第1頁(yè)
CSharp-WinForm實(shí)踐開(kāi)發(fā)教程課件(全)_第2頁(yè)
CSharp-WinForm實(shí)踐開(kāi)發(fā)教程課件(全)_第3頁(yè)
CSharp-WinForm實(shí)踐開(kāi)發(fā)教程課件(全)_第4頁(yè)
CSharp-WinForm實(shí)踐開(kāi)發(fā)教程課件(全)_第5頁(yè)
已閱讀5頁(yè),還剩403頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于C#語(yǔ)言

本課學(xué)時(shí):72課時(shí)聯(lián)系方式:qianshao@Windows程序設(shè)計(jì)2021/5/91課程地位綜合基礎(chǔ)課程SQLServerXMLAjax[Javascript&XML]ASP.NETOracleRSSComputerBaseHTML&JavaScriptOOP\JavaCDatabaseBaseJSP/ServletEJB/WebServiceC#Struts/JSFTesting/SQALinuxWinForms2021/5/92第一章、Windows編程基礎(chǔ)本章主要內(nèi)容介紹

1.1windows和窗體

1.2VisualSIDE簡(jiǎn)介

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

簡(jiǎn)單而強(qiáng)大改善了接口和基類(lèi)IntelliSense

新的管理數(shù)據(jù)提供程序

安全

靈活的控件

通曉數(shù)據(jù)

向?qū)?.1Windows和窗體2021/5/971.1.2創(chuàng)建WinForms應(yīng)用程序“開(kāi)始”“程序”“MicrosoftVisualStudio.NET2005”“MicrosoftVisualStudio.NET2005”2021/5/98創(chuàng)建WinForms應(yīng)用程序6-2設(shè)計(jì)窗口2021/5/991.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>提供了大量繪圖工具的訪(fǎng)問(wèn)權(quán)限基礎(chǔ)核心命名空間ArrayList、BitArray、Hashtable、Stack、StringCollection和StringTable類(lèi)大量窗體和控件從

System.Windows.Forms.Form派生VisualStudio.NET生成的代碼2021/5/9101.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)目的容器2021/5/911創(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)資源2021/5/9121.1.2創(chuàng)建WinForms應(yīng)用程序//下面代碼見(jiàn):program.cs文件[STAThread]staticvoidMain(){ Application.Run(newForm1());}程序的主入口點(diǎn)2021/5/9131.1.3WinForms中的常用控件可視化界面組件統(tǒng)稱(chēng)為控件System.Windows.Forms.ControlSystem.Windows.FormsControlButtonBaseButtonCheckBoxLabelListControlComboBoxListBoxTextBoxBaseTextBoxRadioButton2021/5/9141.1.3WinForms中的常用控件

標(biāo)簽按鈕組合框列表框文本框2021/5/915標(biāo)簽屬性說(shuō)明Text該屬性用于設(shè)置或獲取與該控件關(guān)聯(lián)的文本方法說(shuō)明Hide隱藏控件,調(diào)用該方法時(shí),即使

Visible屬性設(shè)置為T(mén)rue,控件也不可見(jiàn)Show相當(dāng)于將控件的Visible屬性設(shè)置為T(mén)rue并顯示控件事件說(shuō)明

Click用戶(hù)單擊控件時(shí)將發(fā)生該事件1.1.3WinForms中的常用控件

標(biāo)簽控件按鈕控件文本框控件列表控件組合框控件2021/5/916privatevoidlinkLabel1_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)閉2021/5/917文本框?qū)傩哉f(shuō)明MaxLength可在文本框中輸入的最大字符數(shù)Multiline表示是否可在文本框中輸入多行文本Passwordchar機(jī)密和敏感數(shù)據(jù),密碼輸入字符ReadOnly文本框中的文本為只讀Text檢索在控件中輸入的文本方法說(shuō)明Clear刪除現(xiàn)有的所有文本事件說(shuō)明KeyPress用戶(hù)按一個(gè)鍵結(jié)束時(shí)將發(fā)生該事件1.1.3WinForms中的常用控件

2021/5/918按鈕屬性說(shuō)明Enabled確定是否可以啟用或禁用該控件方法說(shuō)明PerformClickButton控件的Click事件

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

2021/5/919

案例:用戶(hù)登錄設(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("用戶(hù)名稱(chēng)或密碼為空!","登錄提示");clear();return;}else{MessageBox.Show("歡迎您登錄本系統(tǒng)!","消息提示");clear();}}publicvoidclear(){textBox1.Clear();textBox2.Clear();textBox2.Focus();}2021/5/920列表框?qū)傩訧temsSelectionMode

SelectedIndex

SelectedItemSelectedItems

Text

方法ClearSelected事件SelectedIndexChanged1.1.3WinForms中的常用控件

2021/5/921使用列表框(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("您選擇的部門(mén)是:"+listBox1.SelectedItem.ToString()+",位列第"+listBox1.SelectedIndex.ToString(),"信息提示");}2021/5/922使用列表框(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()+"條記錄";}2021/5/923組合框?qū)傩哉f(shuō)明DropDownStyleComboBox控件的樣式MaxDropDownItems下拉區(qū)顯示的最大項(xiàng)目數(shù)方法說(shuō)明Select在ComboBox控件上選定指定范圍的文本1.1.3WinForms中的常用控件

2021/5/924使用組合框privatevoidForm1_Load(objectsender,EventArgse){boBox1.Items.Add("財(cái)務(wù)部");boBox1.Items.Add("產(chǎn)品部");boBox1.Items.Add("銷(xiāo)售部");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("銷(xiāo)售部");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("銷(xiāo)售部");boBox3.Items.Add("生產(chǎn)部");//默認(rèn)的選擇是"產(chǎn)品部"boBox3.SelectedIndex=1;}2021/5/925消息框窗口MessageBox.Show(“[消息文本]");消息框用于顯示消息Abort,Cancel,Ignore,No,None,Ok,Retry和Yesif(MessageBox.Show(“保存文件”,“保存",MessageBoxButtons.YesNo,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1)==DialogResult.Yes){ //保存文件所用的代碼

//保存后的MessageBox }1.1.3WinForms中的常用控件

2021/5/926消息框窗口重載方法Show(stringtext);Show(stringtext,stringcaption);Show(stringtext,stringcaption,MessageBoxButtonsbuttons);Show(stringtext,stringcaption,MessageBoxButtonsbuttons,MessageBoxIconicon);……2021/5/927privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("嘿,這是簡(jiǎn)單提示!","信息提示");}privatevoidbutton2_Click(objectsender,EventArgse){DialogResultresult=MessageBox.Show("嘿,這是問(wèn)詢(xún)提示!","問(wèn)詢(xú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)詢(xún)提示!","問(wèn)詢(xú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";}}2021/5/928應(yīng)用程序示例

解決方案資源管理器屬性窗口工具箱2021/5/929應(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();}2021/5/930應(yīng)用程序示例privatevoidcboDesignation_SelectedIndexChanged (objectsender,System.EventArgse){ MessageBox.Show(“您已經(jīng)選定了"+ this.cboDesignation.SelectedItem.ToString());}在退出應(yīng)用程序之前,使用MessageBox.Show()顯示在str變量中存儲(chǔ)選定項(xiàng)的消息框2021/5/931圖標(biāo)系統(tǒng)按鈕System.Windows.FormsControlScrollableControlContainerControlForm標(biāo)題欄控件1.1.4窗體容器簡(jiǎn)介

2021/5/9321.1.4窗體容器簡(jiǎn)介

SDI[單文檔界面]MDI[多文檔界面]2021/5/9331.1.5窗體的屬性屬性StartPosition初始窗口位置CancelButton按下esc鍵后執(zhí)行那個(gè)按鈕。ControlBox確定系統(tǒng)是否有圖標(biāo)和最大最小關(guān)閉按鈕。FormBorderStyle指定邊框和標(biāo)題欄的外觀和行為。HelpButton確定窗體的標(biāo)題欄上是否有幫助按鈕。KeyPreview確定窗體鍵盤(pán)事件是否已經(jīng)向窗體注冊(cè)。MainMenuStrip確定鍵盤(pán)激活和多文檔合并。ShowInTaskbar確定窗體是否出現(xiàn)在任務(wù)欄中。WindowState確定窗體的初始可視狀態(tài)。2021/5/9341.1.5窗體的常用方法和事件方法Activate當(dāng)窗體被激活時(shí)候發(fā)生

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

事件ActivatedClosedClosingLoad2021/5/935示例:顯示另一窗體2021/5/936示例:顯示另一窗體[被調(diào)用的窗體類(lèi)][窗體實(shí)例]=new[被調(diào)用的窗體類(lèi)]();[窗體實(shí)例].Show();下面,在菜單的單擊事件中寫(xiě)下如下的事件。privatevoidmenuItem3_Click(objectsender,EventArgse){Form2Mdichild=newForm2();Mdichild.MdiParent=this;Mdichild.Show();}當(dāng)然,需要再建立兩個(gè)窗體對(duì)象,form2和form3窗體2021/5/937示例1:在form2窗體中進(jìn)行如下操作單擊“發(fā)送”按鈕2021/5/938應(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();}2021/5/939應(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();}}2021/5/940示例2:在MDI父窗口中,子窗口如何彼此之間傳遞信息?代碼見(jiàn)下2021/5/941示例3:如何防止重復(fù)打開(kāi)子窗體???方法:

直接檢測(cè)是否已經(jīng)打開(kāi)此MDI窗體

//是否已經(jīng)打開(kāi)了?(用循環(huán)來(lái)判斷)

foreach(FormchildrenForminthis.MdiChildren)

{

//檢測(cè)是不是當(dāng)前子窗體名稱(chēng)

if(childrenForm.Name=="子窗體名稱(chēng)")

{

//是的話(huà)就是把他顯示

childrenForm.Visible=true;

//并激活該窗體

childrenForm.Activate();

return;

}

}

//下面是打開(kāi)子窗體

Form1childrenForm=newForm1();

childrenForm.MdiParent=this;

childrenForm.Show();

childrenForm.WindowState=FormWindowState.Maximized;

2021/5/942示例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.Show();

代碼見(jiàn)下2021/5/943示例5:另一種窗體之間的傳值技巧(二)

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

或是

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

2.1WinForms的高級(jí)控件

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

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

窗體單選按鈕控件以組的形式使用單選按鈕允許用戶(hù)從多個(gè)選項(xiàng)中選擇一個(gè)選項(xiàng)屬性說(shuō)明Appearance

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

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

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

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();}}2021/5/9572.1.3選項(xiàng)卡控件在Windows應(yīng)用程序中,選項(xiàng)卡用于將相關(guān)的控件集中在一起,放在一個(gè)頁(yè)面中選項(xiàng)卡控件用于顯示多個(gè)選項(xiàng)卡,其中每個(gè)選項(xiàng)卡均可包含圖片和其他控件選項(xiàng)卡相當(dāng)于另一個(gè)窗體,可以容納其他控件選項(xiàng)卡控件2021/5/958選項(xiàng)卡控件的屬性屬性說(shuō)明MultiLine指定是否可以顯示多行選項(xiàng)卡。如果可以顯示多行選項(xiàng)卡,該值應(yīng)為T(mén)rue,否則為False。默認(rèn)值為FalseSelectedIndex當(dāng)前所選選項(xiàng)卡頁(yè)的索引值。該屬性的值為當(dāng)前所選選項(xiàng)卡頁(yè)的基于0的索引。默認(rèn)值為-1,如果未選定選項(xiàng)卡頁(yè),則為同一值SelectedTab當(dāng)前選定的選項(xiàng)卡頁(yè)。如果未選定選項(xiàng)卡頁(yè),則值為NULL引用ShowToolTips指定在鼠標(biāo)移至選項(xiàng)卡時(shí),是否應(yīng)顯示該選項(xiàng)卡的工具提示。如果對(duì)帶有工具提示的選項(xiàng)卡顯示工具提示,該值應(yīng)為T(mén)rue,否則為False【同時(shí)必須設(shè)置某頁(yè)的ToolTipText內(nèi)容】TabCount檢索選項(xiàng)卡控件中選項(xiàng)卡的數(shù)目SelectedIndexChanged更改SelectedIndex屬性值時(shí),將觸發(fā)該事件2021/5/959選項(xiàng)卡控件的屬性屬性說(shuō)明Alignment控制標(biāo)簽在標(biāo)簽控件的什么位置顯示。默認(rèn)的位置為控件的頂部Appearance控制標(biāo)簽的顯示方式。標(biāo)簽可以顯示為一般的按鈕或帶有平面樣式HotTrack如果這個(gè)屬性設(shè)置為true,則當(dāng)鼠標(biāo)指針滑過(guò)控件上的標(biāo)簽時(shí),其外觀就會(huì)改變Multiline如果這個(gè)屬性設(shè)置為true,就可以有幾行標(biāo)簽RowCount返回當(dāng)前顯示的標(biāo)簽行數(shù)SelectedIndex返回或設(shè)置選中標(biāo)簽的索引TabPages這是控件中的TabPage對(duì)象集合。使用這個(gè)集合可以添加和刪除TabPage對(duì)象TabCount返回標(biāo)簽的總數(shù)SelectedTab返回或設(shè)置選中的標(biāo)簽。注意這個(gè)屬性在TabPages的實(shí)例上使用2021/5/960設(shè)定選項(xiàng)卡的數(shù)目或者綜合應(yīng)用程序示例(一)2021/5/961設(shè)定選項(xiàng)卡的提示信息總選項(xiàng)卡設(shè)計(jì)分選項(xiàng)卡屬性設(shè)計(jì)綜合應(yīng)用程序示例(二)2021/5/962統(tǒng)計(jì)頁(yè)面操作基本信息privatevoidtabControl1_SelectedIndexChanged(objectsender,EventArgse){label1.Text="當(dāng)前操作統(tǒng)計(jì)信息為:頁(yè)面為第"+this.tabControl1.SelectedIndex.ToString()+"頁(yè),選項(xiàng)卡頁(yè)為"+tabControl1.SelectedTab.Text+",共有頁(yè)數(shù)"+tabControl1.TabCount.ToString();}綜合應(yīng)用程序示例(三)2021/5/963綜合應(yīng)用程序示例(四)使用窗體接受職員的個(gè)人信息和職業(yè)信息將使用單選按鈕、圖片框和選項(xiàng)卡控件應(yīng)用程序提供有兩個(gè)選項(xiàng)卡頁(yè)第一個(gè)選項(xiàng)卡頁(yè)顯示個(gè)人信息的文本框2021/5/964綜合應(yīng)用程序示例(四)第二個(gè)選項(xiàng)卡頁(yè)顯示職員信息的文本框2021/5/965綜合應(yīng)用程序示例(五)選項(xiàng)卡的基本操作2021/5/9662.1.4進(jìn)度條用于指示操作的進(jìn)度、完成的百分比外觀是排列在水平條中的一定數(shù)目的矩形2021/5/967進(jìn)度條的屬性和方法屬性說(shuō)明Maximum進(jìn)度條控件的最大值。默認(rèn)值為100Minimum進(jìn)度條控件的最小值。進(jìn)度條從最小值開(kāi)始遞增,直至達(dá)到最大值。默認(rèn)值為0StepPerformStep方法應(yīng)據(jù)以增加進(jìn)度條的光標(biāo)位置的值。默認(rèn)值為10Value進(jìn)度條控件中光標(biāo)的當(dāng)前位置。默認(rèn)值為0方法說(shuō)明Increment按指定的遞增值移動(dòng)進(jìn)度條的光標(biāo)位置PerformStep按Step屬性中指定的值移動(dòng)進(jìn)度條的光標(biāo)位置案例見(jiàn)下:2021/5/968進(jìn)度條練習(xí)1:加載數(shù)據(jù)庫(kù)練習(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();}}2021/5/9692.1.6ImageList控件屬性說(shuō)明Images該屬性表示圖像列表中包含的圖像的集合ImageSize該屬性表示圖像的大小,默認(rèn)高度和寬度為16x16,最大大小為256x256方法說(shuō)明Draw該方法用于繪制指定圖像ImageList控件的屬性和方法位于Systems.Windows.Forms命名空間內(nèi)imgImageList1.Images.Add(Image.FromFile("picture.gif"));this.picMyPicture.Image=this.imgImageList1.Images[0];在ImageList控件中添加圖像的代碼Image類(lèi)的FromFile()方法用于手動(dòng)將圖像文件添加到ImageList控件中2021/5/9702.1.6ImageList控件練習(xí)第一步:加載imagelist控件注意配置imagesize屬性第二步:配置images屬性,添加圖片信息第三步:添加一個(gè)toolbar控件第四步:指定toolbar的imagelist控件對(duì)象,并添加具體的button對(duì)象。2021/5/971兩個(gè)類(lèi)ToolBarToolBarButton2.1.7ToolBar控件屬性說(shuō)明Buttons工具欄按鈕控件的集合

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

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

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

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

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

MessageBox.Show(“已單擊“打開(kāi)”按鈕"); }}處理ButtonClick事件的代碼2021/5/973案例第一步:添加toolbar控件第二步:設(shè)置toolbar屬性第三步:添加5個(gè)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;}2021/5/9742.1.8statusStrip

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

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

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

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

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

中間空白顯示

居右邊顯示時(shí)間信息【具體實(shí)現(xiàn)見(jiàn)下】2021/5/9762.1.8statusStrip

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

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

longcurTickValue=Environment.TickCount;

longdifference=curTickValue-compuTime;

longcomputerHours,computerMinutes,computerSeconds;

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

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

2021/5/996案例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("班級(jí)",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]);}2021/5/997案例3:案例見(jiàn)下:如何各行顯示不同顏色?for(inti=0;i<this.listViewControl.Items.Count;i++){if(i%2==0){this.listViewControl.Items[

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論