Windows窗体和常用控件课件_第1页
Windows窗体和常用控件课件_第2页
Windows窗体和常用控件课件_第3页
Windows窗体和常用控件课件_第4页
Windows窗体和常用控件课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024-8-121

Windows窗體和常用控件2024-8-122控制臺應用程式的缺點基於字元介面,使用不方便功能十分有限介面不友好,用戶體驗差2024-8-1235.1Windows窗體窗體本身是一個對象,對應於System.Windows.Forms名稱空間的Form類。它有自己的屬性、方法和事件,用於控制窗體的外觀和行為。窗體又是各種控件的容器,用於容納各種窗體控件。如果想生成窗體,必須從Form類派生出自己的窗體類。2024-8-124每個事件處理程式提供兩個使得以正確處理事件的參數第一個參數sender提供對引發事件的對象的引用。第二個參數e傳遞針對要處理的事件的對象事件參數privatevoidbutton1_Click(objectsender,System.EventArgse){}2024-8-125窗體和控件窗體代表WinForms

中的類每次創建應用程式,都會添加一個窗體可視化介面組件統稱為控件2024-8-126

利用VisualC#編制Windows應用程式的過程可歸結成以下幾個步驟:

(1)利用窗體設計器和【Windows窗體】控件組中的控件設計應用程式介面。

(2)設計窗口和控件的屬性。

(3)編寫事件方法代碼。2024-8-1275.1.1窗體屬性(1)Text屬性:指定窗體的標題。2024-8-128(2)Name屬性:指定窗體的名稱。用於在代碼中訪問窗體

(3)ForeColor屬性:指定窗體的前景色

Form1.ForeColor=Color.Blue;(4)BackColor屬性:窗體的背景色。(5)BackgroundImage屬性:指定窗體的背景圖片。(6)Location和Left、Top屬性:指定窗體的顯示位置。

Form1.Location=newPoint(10,20);窗體屬性設置示例.

轉到窗體方法2024-8-129(7)Size和Width、Height屬性:指定窗體的大小。

(8)StartPosition屬性:指定窗體的起始位置。

Form1.StartPosition=FormStartPosition.CenterScreen;(9)Enabled屬性:決定是否可以對用戶交互做出回應。(10)Visible屬性:窗體是否可見。(11)WindowState屬性:指示窗體以什麼樣的形式顯示。2024-8-1210(12)FormBorderStyle屬性:設置窗體的邊框樣式。取值於FormBorderStyle枚舉,它只能在設計階段設置。

2024-8-1211(13)ControlBox、MaximizeBox、MinimizeBox屬性:指定在窗體的標題欄中是否顯示控制框、最大化按鈕、最小化按鈕。(14)Icon屬性:指定窗體最小化時在任務欄上顯示的圖示。(15)Cursor屬性:設置當滑鼠指針位於窗體上時顯示的指針形狀。它是一個Cursor對象,常用Cursors集合設置。

Form1.Cursor=Cursors.WaitCursor;2024-8-12125.1.2窗體方法(1)Show和Hide方法:顯示窗體或隱藏窗體。(2)Close方法:關閉窗體。(3)Focus、Activate方法:啟動窗體並給予它焦點。(4)SetBounds方法:設置窗體的位置和大小

this.SetBounds(10,10,100,50);2024-8-12135.1.3窗體事件窗體事件常見的格式為:privatevoid窗體名_事件名(objectsender,EventArgse){

事件回應代碼}窗體常見的事件有:(1)Load事件:加載窗體時被引發。它在窗體顯示之前被執行,通常進行一些初始化的工作2024-8-1214(2)Activated事件:窗體獲得焦點(被啟動)時被引發。可以使用此事件處理一些窗體被啟動時,窗體要更新的內容。(3)Deactivate事件:窗體失去焦點時被引發。(4)FormClosing事件:在關閉窗體時發生。如果此時不想關閉窗體,可以將傳遞給事件處理程式的FormClosingEventArgs參數的Cancel屬性設置為true。(5)FormClosed事件:關閉窗體後發生。

2024-8-1215【例】測試窗體屬性、方法、事件 當用戶單擊“顯示新窗體”按鈕時,在指定位置顯示一個新的窗體,並且窗體的邊框為固定邊框,不能改變窗體的大小,窗體上顯示該窗體的座標和該窗體是新生成的第幾個窗體;單擊“隱藏窗體”按鈕時,窗體被隱藏起來;單擊窗體的“關閉”按鈕時,會彈出一個對話框,詢問用戶是否關閉窗體,如果用戶選擇“取消”,則不關閉窗體。文本控件

編寫顯示窗體按鈕事件關閉窗體彈出消息框2024-8-1216publicpartialclassForm1:Form{

staticintx=200; //保存新窗體的顯示位置

staticinty=200; staticintcount=0; //保存創建新窗體的個數

privatevoidbutton1_Click(objectsender,EventArgse){Form1form2=newForm1(); form2.FormBorderStyle=FormBorderStyle.Fixed3D;form2.Cursor=Cursors.Hand; form2.SetDesktopLocation(x,y); form2.Visible=true; x+=30;y+=30;

this.Activate(); this.button1.Enabled=false;}2024-8-1217privatevoidForm1_Load(objectsender,EventArgse){count+=1; }

privatevoidForm1_FormClosed(objectsender,FormClosedEventArgse){count-=1;}privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse){if(MessageBox.Show("確定要關閉窗體嗎?","確認",MessageBoxButtons.OKCancel)==DialogResult.Cancel)

e.Cancel=true; //取消關閉窗體

}privatevoidForm1_Activated(objectsender,EventArgse){label1.Text="新窗體的座標("+x+","+y+")"; label2.Text="這是第"+count+"個窗體";}

privatevoidbutton2_Click(objectsender,EventArgse){

this.Hide(); }}2024-8-12182024-8-12195.2文本控件5.2.1Label控件

標籤通常用於輸出文本資訊,但輸出的資訊不能編輯標籤控件的屬性(1)TextAlign:設置標籤中文本的對齊方式。(2)AutoSize:設置控件的大小是否隨標題內容的大小自動調整。(3)BorderStyle:設置邊框。(4)Visible:設置標籤是否可見(5)Font:獲取或設置標籤上顯示的文字的字體2024-8-12205.2.2TextBox控件文本框控件可以輸入、顯示、編輯、修改文本內容。TextBox控件的屬性(1)MaxLength屬性:設置文本框內最多允許輸入多少字元(2)ReadOnly屬性:指示文本框中的內容是否允許被改變(3)MultiLine屬性:指定文本框中是否允許顯示和輸入多行文本2024-8-1221(4)PasswordChar屬性:字元類型,允許設置一個字元,用於遮罩用戶在文本框中輸入的內容(5)WordWrap屬性:多行文本框是否自動換行(6)ScrollBars屬性:多行文本框的滾動條模式(7)Text屬性:文本框中所包含的文本內容。(8)SelectedText、SelectionStart和SelectionLength:用戶在文本框中選定的文本,它們只能在代碼中使用。 編程移動插入點的位置:

SelectionLength=0;

SelectionStart=6;2024-8-1222TextBox控件常用事件(1)TextChanged事件:在文本框中輸入新資訊或在程式中改變Text屬性值時,觸發該事件。(2)KeyPress事件:當文本框具有焦點時,按下任意鍵,就會產生該事件。通常可用該事件檢查輸入的字元(通過KeyPress事件過程可以檢測按鍵的ASCⅡ碼值)。(3)GotFocus事件:按下Tab鍵或用滑鼠單擊該對象使它獲得焦點時,觸發該事件。2024-8-1223TextBox控件常用方法

(1)Select方法:選擇文本框中的文本

Select(intstart,intlength);(2)Copy、Cut、Paste方法:剪貼板操作。

if(textBox1.SelectionLength==0) textBox1.Select(2,5); textBox1.Copy(); textBox2.Paste();(3)Clear方法:清空文本框內容。2024-8-1224【例】乘法運算器設計2024-8-1225//乘法運算privatevoidbutton1_Click(objectsender,System.EventArgse){floatss,ee;

ss=Convert.ToSingle(textBox1.Text);

ee=Convert.ToSingle(textBox2.Text); textBox3.Text=Convert.ToString(ss*ee);}//結束應用程式privatevoidbutton3_Click(objectsender,System.EventArgs

e){Application.Exit(); }2024-8-12265.3按鈕控件1.按鈕控件的常用屬性(1)Text:設置按鈕上的標題文字。(2)TextAlign:設置控件中標題文字對齊方式(3)BackColor屬性:設置按鈕控件的背景色。(4)ForeColor屬性:設置按鈕控件的前景色。(5)Font:設置按鈕控件包含的文字的字體。(6)Image屬性:設置按鈕表面上的圖像。2024-8-1227(7)Enabled屬性:按鈕當前是否可用(8)FlatStyle屬性:設置按鈕的樣式(9)TabStop屬性:按鈕能否接收Tab(10)TabIndex屬性:按鈕在控件容器中的Tab鍵順序。2024-8-1228Button控件的常用事件(1)Click事件:單擊按鈕(2)MouseDown事件:滑鼠位於按鈕上並按下滑鼠按鈕時,觸發MouseDown事件(3)MouseUp事件:釋放滑鼠按鈕時,觸發MouseUp事件。注意:命令按鈕不支持DblClick事件。2024-8-1229[例]改變標籤字體、顏色、邊框2024-8-1230//改變文本字體privatevoidbutton1_Click(objectsender,EventArgse){label1.Font=newFont("黑體",15); }//改變文本顏色privatevoidbutton2_Click(objectsender,EventArgse){label1.ForeColor=Color.Blue;}//改變標籤邊框privatevoidbutton3_Click(objectsender,EventArgse){label1.BorderStyle=BorderStyle.Fixed3D;}//隱藏/顯示標籤privatevoidbutton4_Click(objectsender,EventArgse){if(button4.Text=="隱藏標籤"){label1.Visible=false;button4.Text="顯示標籤";}else{label1.Visible=true;button4.Text="隱藏標籤";}}2024-8-12315.4列表選擇控件5.4.1ListBox控件列表框顯示一個固定專案列表供用戶選擇ListBox控件常用屬性(1)SelectionMode屬性:列表項選擇方式。取值於Selection枚舉。(2)MultiColumn屬性:指示列表框是否支持多列顯示。(3)Text屬性:列表框中當前選定項的文本。是一個只讀屬性,只可以在程式中引用。(4)Sorted屬性:指示列表框中的列表項是否按字母順序排序。2024-8-1232(5)Items屬性:是一個集合,存儲列表框中的所有項。索引從0開始。例如,listBox1.Items[2],獲取集合中的第3項。

listBox1.Items.count獲取集合中的專案總數。 屬性窗口中,填充列表框的列表項的步驟:2024-8-1233(6)SelectedItem屬性:獲取或設置列表框中的當前選定項。只能在程式中使用該屬性(7)SelectedIndex屬性:獲取當前選定項的索引。若沒選定任何項,則SelectedIndex的值為-1。 listBox1.Items[listBox1.SelectedIndex](8)SelectedItems屬性:當列表框允許多選時,此屬性返回一個集合,該集合包含列表框中選定的所有項。(9)SelectedIndices屬性:當列表框允許多選時,此屬性返回一個集合,該集合包含列表框中選定的所有項的索引。2024-8-1234ListBox控件常用方法(1)SetSelected方法:對列表項進行選擇或取消。SetSelected(int

index,boolvalue)(2)Item.Add方法:向列表框添加列表項。Add(Objectitem)(3)Item.Remove方法:從列表框中刪除項。Remove(Objectvalue)2024-8-1235(4)Item.RemoveAt方法:從列表框中刪除項。voidRemove(intindex)(5)Item.Clear方法:刪除列表框中的所有項。(6)Item.Insert方法:向列表框中插入項。Insert(int

index,Objectitem)(7)FindString方法:在列表框中搜索包含特定搜索字串的第一項。

FindString(strings,int

startIndex)ListBox控件常用事件

SelectedIndexChanged

事件:選擇不同選項時引發此事件。2024-8-1236[例]測試列表框2024-8-1237//當選擇“多列顯示”單選按鈕時,列表框被設為多列顯示privatevoidradioButton6_Click(objectsender,System.EventArgse){ if(radioButton6.Checked==true)listBox1.MultiColumn=true;}//當選擇“單列顯示”單選按鈕時,列表框被設為單列顯示privatevoidradioButton5_Click(objectsender,System.EventArgse){ if(radioButton5.Checked==true)listBox1.MultiColumn=false;}//當選擇“簡單多選”單選按鈕時,列表框就變成了簡單多選方式。privatevoidradioButton3_CheckedChanged(objectsender,System.EventArgse){ if(radioButton3.Checked==true) listBox1.SelectionMode=SelectionMode.MultiSimple;}//選擇列表框中的項,會在列表框下方的靜態文本標籤中顯示所選項的內容privatevoidlistBox1_SelectedIndexChanged(objectsender,System.EventArgse){ label1.Text=""; //如果是單選,則使用SelectedItem返回所選項

if(listBox1.SelectedIndices.Count==1) label1.Text=listBox1.SelectedItem.ToString(); else{ //如果是多選,則使用SelectedItems返回所有的所選項

for(inti=0;i<listBox1.SelectedIndices.Count;i++) label1.Text+=listBox1.SelectedItems[i].ToString()+"";}}

2024-8-12385.4.2ComboBox控件2024-8-1239ComboBox控件常用屬性(1)SelectedText屬性:獲取或設置組合框的文本框內所選定的文本。如果DropDownStyle屬性設置為DropDownList,則該屬性值是空字元串。(2)MaxDropDownItems

屬性:獲取或設置要在組合框的下拉部分中顯示的最大項數。取值介於1和100之間。2024-8-1240(3)DropDownStyle屬性:獲取或設置組合框的樣式。ComboBox控件常用事件(1)DropDown事件:單擊下拉箭頭時發生。(2)DropDownClosed

事件:組合框的下拉部分不再可見時發生。例子:選擇水果

事件與方法定時控件2024-8-1241[例]測試組合框2024-8-1242//在窗體的Load事件處理過程中,初始化列表框和組合框privatevoidForm1_Load(objectsender,EventArgse){comboBox1.DropDownStyle=ComboBoxStyle.Simple; comboBox1.Items.Clear();listBox1.Items.Clear(); comboBox1.Items.Add("VisualC#.NET程式設計"); comboBox1.Items.Add("VisualC#.NET程式設計習題解析"); comboBox1.Items.Add("VisualBasic.NET編程百例"); comboBox1.Items.Add("VisualC++.NET案例精解"); }//把書籍列表中的項移動到顧客選擇中

privatevoidbutton1_Click(objectsender,EventArgse){if(comboBox1.Items.Count>0){listBox1.Items.Add(comboBox1.SelectedItem);comboBox1.Items.Remove(comboBox1.SelectedItem);}}//把顧客選擇中的項移動到書籍列表中privatevoidbutton2_Click(objectsender,EventArgse){if(listBox1.Items.Count>0){comboBox1.Items.Add(listBox1.SelectedItem);listBox1.Items.Remove(listBox1.SelectedItem);}}2024-8-12435.5選擇控件5.5.1RadioButton控件

常用屬性(1)Text屬性:設置控件的標題文字。(2)TextAlign屬性:設置控件中標題文字的對齊方式。(3)CheckAlign

屬性:設置控件中的單選按鈕在控件中的位置。(4)FlatStyle屬性:設置按鈕的樣式。(5)Checked屬性:單選按鈕是否被選中。2024-8-1244RadioButton控件的常用事件Click事件:當用戶單擊按鈕時,將觸發Click事件。CheckedChanged

事件:當Checked屬性值更改時,將觸發CheckedChanged事件。2024-8-1245GroupBox控件用於為其他控件提供可識別的分組。它是容器控件。常用屬性(1)Text屬性:設置控件的標題文字。(2)Visible屬性:設置控件是否可見2024-8-1246[例]單選按鈕和分組框的應用。

2024-8-1247//“確定”按鈕單擊事件privatevoidbutton1_Click(objectsender,System.EventArgse){ if(radioButton1.Checked==true) textBox1.Font=newFont("宋體",textBox1.Font.Size); if(radioButton2.Checked==true) textBox1.Font=newFont("隸書",textBox1.Font.Size); if(radioButton3.Checked==true) textBox1.Font=newFont("幼圓",textBox1.Font.Size); if(radioButton4.Checked==true) textBox1.ForeColor=Color.Red; if(radioButton5.Checked==true) textBox1.ForeColor=Color.Green; if(radioButton6.Checked==true) textBox1.ForeColor=Color.Blue; if(radioButton7.Checked==true) textBox1.Font=newFont(textBox1.Font.FontFamily,12); if(radioButton8.Checked==true) textBox1.Font=newFont(textBox1.Font.FontFamily,16); if(radioButton9.Checked==true) textBox1.Font=newFont(textBox1.Font.FontFamily,18); textBox1.Text="歡迎學習C#.NET";}2024-8-12485.5.2CheckBox控件CheckBox控件的常用屬性

(1)Text屬性:設置控件的標題文字。(2)TextAlign屬性:控件中標題文字對齊方式(3)BackColor屬性:設置控件的背景色。(4)ForeColor屬性:設置控件的前景色。(5)Font屬性:設置控件包含的文字的字體。(6)Visible屬性:設置複選框控件是否可見。(7)Checked屬性:複選框按鈕是否被選中。2024-8-1249CheckBox控件的常用事件(1)Click事件:單擊複選框時,被觸發(2)CheckedChanged:點擊複選框時被觸發[例]複選框的應用

2024-8-1250//複選框checkBox1的CheckedChanged事件回應過程privatevoidcheckBox1_CheckedChanged(objectsender,System.EventArgse){ if(checkBox1.Checked==true) textBox1.Text=checkBox1.Text; else textBox1.Text=""; }2024-8-12515.6圖形顯示控件PictureBox控件又稱為圖片框。可加載到控件上的圖像檔格式有:位圖文件(.Bmp)、圖示檔(.ICO)、圖元檔(.wmf)、.JPEG和.GIF檔1.PictureBox控件常用的屬性(1)Image屬性:設置控件顯示的圖像。(2)ImageLocation

屬性:獲取或設置要在圖片框中顯示的圖像的路徑。

2024-8-12522.PictureBox控件常用的方法(1)Load方法:加載圖像到圖片框中。

voidLoad(stringurl)(2)CreateGraphics

方法:為控件創建一個Graphics對象。3.PictureBox控件常用的事件(1)Click事件:單擊PictureBox控件時發生。(2)LoadCompleted事件:在非同步圖像加載操作完成、取消或引發異常時發生。(3)LocationChanged事件:在Location屬性值更改後發生。2024-8-12535.7定時控件定時控件(Timer)也稱定時器或計時器,是按一定時間間隔週期性地自動觸發事件的控件。1.定時器常用屬性(1)Enabled屬性:是否啟用計時器。(2)Interval屬性:設置定時間隔(以毫秒為單位)。2.定時器常用方法(1)Start方法:啟動定時器。(2)Stop方法:停止定時器。3.定時器常用事件Tick事件:在間隔了一個Interval時間後所觸發的事件。演員表例子2024-8-1254[例]

設計動畫privateintx1=0,y1=0; privatevoidForm1_Load(objectsender,System.EventArgse){ this.timer1.Enabled=true; this.timer1.Interval=100; }2024-8-1255//定時器控件的Tick事件privatevoidtimer1_Tick(objectsender,System.EventArgse){ x1+=1;y1+=1; if(x1+10>=700) x1=0; if(y1+10>=500) y1=0; Pointnewxy=newPoint(x1,y1);

this.DesktopLocation=newxy; }

//PictureBox控件的單擊事件privatevoidpictureBox1_Click(objectsender,System.EventArgse){

Application.Exit(); }

2024-8-12565.8滑鼠和鍵盤事件5.8.1滑鼠事件1.Click與DoubleClick滑鼠事件

privatevoid控件或窗體名_Click(objectsender,System.EventArgse){ 事件處理過程代碼 } 滑鼠單擊事件與事件處理過程的關聯:

button1.Click+=new EventHandler(button1_Click);

2024-8-1257事件名稱事件的意義Click滑鼠單擊時觸發的事件DoubleClick滑鼠雙擊時觸發的事件MouseUp滑鼠按鍵抬起時觸發的事件MouseDown滑鼠按鍵按下時觸發的事件MouseEnter滑鼠進入控件的可見部分時觸發的事件MouseLeave滑鼠離開控件的可見部分時觸發的事件MouseHover當滑鼠在控件上方靜止一段時間後觸發的事件MouseMove滑鼠滑過控件時觸發的事件MouseCaptureChange滑鼠捕獲更改後觸發的事件2024-8-12582.MouseDown、MouseUp、MouseMove事件參數類型為MouseEventArgs。它提供了屬性:(1)Button:指示按下的是哪個滑鼠按鈕。(2)Location和X、Y:滑鼠指針的當前座標位置(3)Clicks:按下並釋放滑鼠按鈕的次數。3.MouseEnter、MouseLeave、MouseHover滑鼠事件例子2024-8-1259[例]

滑鼠事件當滑鼠移到或離開按鈕時,改變按鈕的背景色和鼠標指針形狀。

//滑鼠指針進入button1的事件privatevoidbutton1_MouseEnter(objectsender,EventArgse){button1.BackColor=Color.Blue; button1.Cursor=Cursors.Hand;} //滑鼠指針離開button1的事件privatevoidbutton1_MouseLeave(objectsender,EventArgse){button1.BackColor=Color.DarkGreen; button1.Cursor=Cursors.Default; button1.Text="MouseLeave";}2024-8-1260//滑鼠指針在窗體上的移動事件voidForm1_MouseMove(objectsender,MouseEventArgse){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论