Windows窗體和常用控件課件_第1頁
Windows窗體和常用控件課件_第2頁
Windows窗體和常用控件課件_第3頁
Windows窗體和常用控件課件_第4頁
Windows窗體和常用控件課件_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2024/8/161

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

中的類每次創(chuàng)建應(yīng)用程序,都會添加一個窗體可視化界面組件統(tǒng)稱為控件2024/8/166

利用VisualC#編制Windows應(yīng)用程序的過程可歸結(jié)成以下幾個步驟:

(1)利用窗體設(shè)計器和【W(wǎng)indows窗體】控件組中的控件設(shè)計應(yīng)用程序界面。

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

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

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

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

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

轉(zhuǎn)到窗體方法2024/8/169(7)Size和Width、Height屬性:指定窗體的大小。

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

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

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

Form1.Cursor=Cursors.WaitCursor;2024/8/16125.1.2窗體方法(1)Show和Hide方法:顯示窗體或隱藏窗體。(2)Close方法:關(guān)閉窗體。(3)Focus、Activate方法:激活窗體并給予它焦點。(4)SetBounds方法:設(shè)置窗體的位置和大小

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

事件響應(yīng)代碼}窗體常見的事件有:(1)Load事件:加載窗體時被引發(fā)。它在窗體顯示之前被執(zhí)行,通常進行一些初始化的工作2024/8/1614(2)Activated事件:窗體獲得焦點(被激活)時被引發(fā)。可以使用此事件處理一些窗體被激活時,窗體要更新的內(nèi)容。(3)Deactivate事件:窗體失去焦點時被引發(fā)。(4)FormClosing事件:在關(guān)閉窗體時發(fā)生。如果此時不想關(guān)閉窗體,可以將傳遞給事件處理程序的FormClosingEventArgs參數(shù)的Cancel屬性設(shè)置為true。(5)FormClosed事件:關(guān)閉窗體后發(fā)生。

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

編寫顯示窗體按鈕事件關(guān)閉窗體彈出消息框2024/8/1616publicpartialclassForm1:Form{

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

staticinty=200; staticintcount=0; //保存創(chuàng)建新窗體的個數(shù)

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/1617privatevoidForm1_Load(objectsender,EventArgse){count+=1; }

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

e.Cancel=true; //取消關(guān)閉窗體

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

privatevoidbutton2_Click(objectsender,EventArgse){

this.Hide(); }}2024/8/16182024/8/16195.2文本控件5.2.1Label控件

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

SelectionLength=0;

SelectionStart=6;2024/8/1622TextBox控件常用事件(1)TextChanged事件:在文本框中輸入新信息或在程序中改變Text屬性值時,觸發(fā)該事件。(2)KeyPress事件:當文本框具有焦點時,按下任意鍵,就會產(chǎn)生該事件。通??捎迷撌录z查輸入的字符(通過KeyPress事件過程可以檢測按鍵的ASCⅡ碼值)。(3)GotFocus事件:按下Tab鍵或用鼠標單擊該對象使它獲得焦點時,觸發(fā)該事件。2024/8/1623TextBox控件常用方法

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

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

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

ss=Convert.ToSingle(textBox1.Text);

ee=Convert.ToSingle(textBox2.Text); textBox3.Text=Convert.ToString(ss*ee);}//結(jié)束應(yīng)用程序privatevoidbutton3_Click(objectsender,System.EventArgs

e){Application.Exit(); }2024/8/16265.3按鈕控件1.按鈕控件的常用屬性(1)Text:設(shè)置按鈕上的標題文字。(2)TextAlign:設(shè)置控件中標題文字對齊方式(3)BackColor屬性:設(shè)置按鈕控件的背景色。(4)ForeColor屬性:設(shè)置按鈕控件的前景色。(5)Font:設(shè)置按鈕控件包含的文字的字體。(6)Image屬性:設(shè)置按鈕表面上的圖像。2024/8/1627(7)Enabled屬性:按鈕當前是否可用(8)FlatStyle屬性:設(shè)置按鈕的樣式(9)TabStop屬性:按鈕能否接收Tab(10)TabIndex屬性:按鈕在控件容器中的Tab鍵順序。2024/8/1628Button控件的常用事件(1)Click事件:單擊按鈕(2)MouseDown事件:鼠標位于按鈕上并按下鼠標按鈕時,觸發(fā)MouseDown事件(3)MouseUp事件:釋放鼠標按鈕時,觸發(fā)MouseUp事件。注意:命令按鈕不支持DblClick事件。2024/8/1629[例]改變標簽字體、顏色、邊框2024/8/1630//改變文本字體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/16315.4列表選擇控件5.4.1ListBox控件列表框顯示一個固定項目列表供用戶選擇ListBox控件常用屬性(1)SelectionMode屬性:列表項選擇方式。取值于Selection枚舉。(2)MultiColumn屬性:指示列表框是否支持多列顯示。(3)Text屬性:列表框中當前選定項的文本。是一個只讀屬性,只可以在程序中引用。(4)Sorted屬性:指示列表框中的列表項是否按字母順序排序。2024/8/1632(5)Items屬性:是一個集合,存儲列表框中的所有項。索引從0開始。例如,listBox1.Items[2],獲取集合中的第3項。

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

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

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

FindString(strings,int

startIndex)ListBox控件常用事件

SelectedIndexChanged

事件:選擇不同選項時引發(fā)此事件。2024/8/1636[例]測試列表框2024/8/1637//當選擇“多列顯示”單選按鈕時,列表框被設(shè)為多列顯示privatevoidradioButton6_Click(objectsender,System.EventArgse){ if(radioButton6.Checked==true)listBox1.MultiColumn=true;}//當選擇“單列顯示”單選按鈕時,列表框被設(shè)為單列顯示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;}//選擇列表框中的項,會在列表框下方的靜態(tài)文本標簽中顯示所選項的內(nèi)容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/16385.4.2ComboBox控件2024/8/1639ComboBox控件常用屬性(1)SelectedText屬性:獲取或設(shè)置組合框的文本框內(nèi)所選定的文本。如果DropDownStyle屬性設(shè)置為DropDownList,則該屬性值是空字符串。(2)MaxDropDownItems

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

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

事件與方法定時控件2024/8/1641[例]測試組合框2024/8/1642//在窗體的Load事件處理過程中,初始化列表框和組合框privatevoidForm1_Load(objectsender,EventArgse){comboBox1.DropDownStyle=ComboBoxStyle.Simple; comboBox1.Items.Clear();listBox1.Items.Clear(); comboBox1.Items.Add("VisualC#.NET程序設(shè)計"); comboBox1.Items.Add("VisualC#.NET程序設(shè)計習題解析"); 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/16435.5選擇控件5.5.1RadioButton控件

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

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

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

2024/8/1647//“確定”按鈕單擊事件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/16485.5.2CheckBox控件CheckBox控件的常用屬性

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

2024/8/1650//復(fù)選框checkBox1的CheckedChanged事件響應(yīng)過程privatevoidcheckBox1_CheckedChanged(objectsender,System.EventArgse){ if(checkBox1.Checked==true) textBox1.Text=checkBox1.Text; else textBox1.Text=""; }2024/8/16515.6圖形顯示控件PictureBox控件又稱為圖片框??杉虞d到控件上的圖像文件格式有:位圖文件(.Bmp)、圖標文件(.ICO)、圖元文件(.wmf)、.JPEG和.GIF文件1.PictureBox控件常用的屬性(1)Image屬性:設(shè)置控件顯示的圖像。(2)ImageLocation

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

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

voidLoad(stringurl)(2)CreateGraphics

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

設(shè)計動畫privateintx1=0,y1=0; privatevoidForm1_Load(objectsender,System.EventArgse){ this.timer1.Enabled=true; this.timer1.Interval=100; }2024/8/1655//定時器控件的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/16565.8鼠標和鍵盤事件5.8.1鼠標事件1.Click與DoubleClick鼠標事件

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

button1.Click+=new EventHandler(button1_Click);

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

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

//鼠標指針進入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/1660//鼠標指針在窗體上的移動事件voidForm1_MouseMove(objectsender,MouseEventArgse){

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論