c#Windows窗體應(yīng)用程序設(shè)計(jì).ppt_第1頁(yè)
c#Windows窗體應(yīng)用程序設(shè)計(jì).ppt_第2頁(yè)
c#Windows窗體應(yīng)用程序設(shè)計(jì).ppt_第3頁(yè)
c#Windows窗體應(yīng)用程序設(shè)計(jì).ppt_第4頁(yè)
c#Windows窗體應(yīng)用程序設(shè)計(jì).ppt_第5頁(yè)
已閱讀5頁(yè),還剩65頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、a,1,Windows窗體應(yīng)用程序設(shè)計(jì),8.1 窗體設(shè)計(jì) 8.2 常用的控件設(shè)計(jì) 8.3 多文檔窗體 8.4 窗體設(shè)計(jì)的事件機(jī)制,a,2,窗體設(shè)計(jì),窗體(Form)是一個(gè)窗口或?qū)υ捒?,是存放各種控件(包括標(biāo)簽、文本框、命令按鈕等)的容器,可用來(lái)向用戶顯示信息。 8.1.1 創(chuàng)建Windows窗體應(yīng)用程序的過(guò)程 添加一個(gè)窗體的操作步驟是:選擇“項(xiàng)目”|“添加Windows窗體”菜單命令,在出現(xiàn)的 “添加新項(xiàng)”對(duì)話框中,選中“Windows窗體”,輸入相應(yīng)的名稱(chēng)(這里為Form2.cs),單擊“添加”按鈕。 一個(gè)Windows應(yīng)用程序可以包含多個(gè)窗體。,a,3,窗體類(lèi)型 在C#中,窗體分為如下兩種

2、類(lèi)型: (1)普通窗體,也稱(chēng)為單文檔窗體(SDI),前面所有創(chuàng)建的窗體均為普通窗體。普通窗體又分為如下兩種: 模式窗體。這類(lèi)窗體在屏幕上顯示后用戶必須響應(yīng),只有在它關(guān)閉后才能操作其他窗體或程序。 無(wú)模式窗體。這類(lèi)窗體在屏幕上顯示后用戶可以不必響應(yīng),可以隨意切換到其他窗體或程序進(jìn)行操作。通常情況下,當(dāng)建立新的窗體時(shí),都默認(rèn)設(shè)置為無(wú)模式窗體。 (2)MDI父窗體,即多文檔窗體,其中可以放置普通子窗體。,a,4,窗體的常用屬性 1. 布局屬性 2. 窗口樣式屬性 3. 外觀樣式屬性 4. 行為屬性 8.1.4 窗體的常用事件 8.1.5 窗體的常用方法,a,5,1. Form1窗體: (1)設(shè)計(jì)界面

3、,(2)事件過(guò)程:,Form1.cs文件: /引用部分 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;,a,6,namespace Proj8_1 public partial class Form1 : Form /從Form類(lèi)繼承Form1窗體 public Form1() /Form1類(lèi)構(gòu)造函數(shù) Initial

4、izeComponent(); /調(diào)用初始化方法,其代碼在Form1.Designer.cs文件中 private void button1_Click(object sender, EventArgs e) Form myform = new Form1_1(); /定義Form1_1類(lèi)對(duì)象 myform.ShowDialog(); /以模式窗體方式調(diào)用 private void button2_Click(object sender, EventArgs e) Form myform = new Form1_2(); /定義Form1_2類(lèi)對(duì)象 myform.Show(); /以無(wú)模式窗體

5、方式調(diào)用 ,a,7,Form1.Designer.cs 文件: namespace Proj8_1 partial class Form1 / /必需的設(shè)計(jì)器變量。 / private System.ComponentModel.IContainer components = null; / /清理所有正在使用的資源。 / /如果應(yīng)釋放托管資源,為true; /否則為false。 protected override void Dispose(bool disposing) /重寫(xiě)基類(lèi)Dispose()方法 if (disposing /調(diào)用基類(lèi)的Dispose()方法 ,a,8,#regio

6、n Windows 窗體設(shè)計(jì)器生成的代碼 / /設(shè)計(jì)器支持所需的方法 - 不要 /使用代碼編輯器修改此方法的內(nèi)容。 / private void InitializeComponent() /初始化方法 this.button1 = new System.Windows.Forms.button(); this.button2 = new System.Windows.Forms.button(); this.SuspendLayout(); / button1 this.button1.Font = new System.Drawing.Font(宋體, 9F, System.Drawing

7、.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (byte)(134); this.button1.Location = new System.Drawing.Point(28, 21); this.button1.Name = button1; this.button1.Size = new System.Drawing.Size(117, 33); this.button1.TabIndex = 0; this.button1.Text = 調(diào)用模式窗體; this.button1.UseVisualStyleBackColor =

8、true; this.button1.Click += new System.EventHandler(this.button1_Click);,a,9,/ button2 this.button2.Font = new System.Drawing.Font(宋體, 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (byte)(134); this.button2.Location = new System.Drawing.Point(28, 69); this.button2.Name = butt

9、on2; this.button2.Size = new System.Drawing.Size(117, 33); this.button2.TabIndex = 1; this.button2.Text = 調(diào)用無(wú)模式窗體; this.button2.UseVisualStyleBackColor = true; this.button2.Click += new System.EventHandler(this.button2_Click); / Form1 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); thi

10、s.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(169, 128); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Name = Form1; this.StartPosition =System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = Form1; this.Resume

11、Layout(false); ,a,10,#endregion private System.Windows.Forms.button button1; /私有字段 private System.Windows.Forms.button button2; /私有字段 ,a,11,2. Form1_1窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程:無(wú),3. Form1_1窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程:無(wú),a,12,Program.cs文件 : using System; using System.Collections.Generic; using System.Windows.Forms;

12、namespace Proj8_1 static class Program / / 應(yīng)用程序的主入口點(diǎn)。 / STAThread static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); /啟動(dòng)窗體為Form1 ,a,13,按F5鍵或單擊工具欄中的按鈕運(yùn)行本項(xiàng)目。 上機(jī)調(diào)試運(yùn)行結(jié)果。,a,14,窗體上各事件的引發(fā)順序 當(dāng)一個(gè)窗體啟動(dòng)時(shí),執(zhí)行事件過(guò)程的次序如下: (1)本窗體上的Lo

13、ad事件過(guò)程。 (2)本窗體上的Activated事件過(guò)程。 (3)本窗體上的其他Form級(jí)事件過(guò)程。 (4)本窗體上包含對(duì)象的相應(yīng)事件過(guò)程。 一個(gè)窗體被卸載時(shí),執(zhí)行事件過(guò)程的次序如下: (1)本窗體上的Closing事件過(guò)程。 (2)本窗體上的FormClosing事件過(guò)程。 (3)本窗體上的Closed事件過(guò)程。 (4)本窗體上的FormClosed事件過(guò)程。,a,15,焦點(diǎn)與Tab鍵次序 焦點(diǎn)(Focus)是指當(dāng)前處于活動(dòng)狀態(tài)的窗體或控件。,要將焦點(diǎn)移到當(dāng)前窗體中的textBox1文本框,可以使用以下命令: textBox1.Focus();,a,16,控件概述 控件是包含在窗體上的對(duì)象

14、,是構(gòu)成用戶界面的基本元素,也是C#可視化編程的重要工具。 工具箱中包含了建立應(yīng)用程序的各種控件,根據(jù)控件的不同用途分為若干個(gè)選項(xiàng)卡,可根據(jù)用途單擊相應(yīng)的選項(xiàng)卡,將其展開(kāi),選擇需要的控件。,常用的控件設(shè)計(jì),a,17,大多數(shù)控件共有的基本屬性如下 : 1)Name屬性 2)Text屬性 3)尺寸大?。⊿ize)和位置(Location)屬性 4)字體屬性(Font) 5)顏色屬性(BackColor和ForeColor) 6)Cursor屬性 7)可見(jiàn)(Visible)和有效(Enabled)屬性,a,18,富文本框控件 提供類(lèi)似Microsoft Word能夠輸入、顯示或處理具有格式的文本。

15、【例8.2】 設(shè)計(jì)一個(gè)窗體,說(shuō)明富文本框的使用方法。,Form2窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程: private void Form2_Load(object sender, EventArgs e) richtextBox1.LoadFile(H:C#2005ch8file.RTF, RichtextBoxStreamType.RichText); ,H:C#2005ch8file.RTF,a,19,將本窗體設(shè)計(jì)為啟動(dòng)窗體,運(yùn)行本項(xiàng)目,在富文本框RichtextBox1中顯示H:C#2005ch8file.rtf文件的內(nèi)容。,a,20,分組框控件 面板控件,a,21,復(fù)選框控件 屬于

16、選擇類(lèi)控件,用來(lái)設(shè)置需要或不需要某一選項(xiàng)功能。在運(yùn)行時(shí),如果用戶用鼠標(biāo)單擊復(fù)選框左邊的方框,方框中就會(huì)出現(xiàn)一個(gè)“”符號(hào),表示已選取這個(gè)功能了。 復(fù)選框的功能是獨(dú)立的,如果在同一窗體上有多個(gè)復(fù)選框,用戶可根據(jù)需要選取一個(gè)或幾個(gè)。,主要屬性: Checked:獲取或設(shè)置一個(gè)布爾值,該值指示是否已選中控件。如果為T(mén)rue,則指示選中狀態(tài);否則為False(默認(rèn)值)。 主要事件: Click,a,22,【例8.3】 設(shè)計(jì)一個(gè)窗體,說(shuō)明復(fù)選框的應(yīng)用。,Form3窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程: private void button1_Click(object sender, EventArgs

17、 e) if (checkBox1.Checked ,a,23,運(yùn)行界面,a,24,單選按鈕控件 單選按鈕是多選一,只能從多個(gè)選項(xiàng)中選擇一個(gè),各選項(xiàng)間的關(guān)系是互斥的。 單選按鈕使用時(shí)經(jīng)常用多個(gè)控件構(gòu)成一個(gè)組,同一時(shí)刻只能選擇同一組中的一個(gè)單選按鈕,因此,經(jīng)常將單選按鈕放在一個(gè)分組框中構(gòu)成一個(gè)選項(xiàng)組。,a,25,設(shè)計(jì)一個(gè)窗體,說(shuō)明單選按鈕的使用方法。,Form4窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程: private void button1_Click(object sender, EventArgs e) if (radiobutton3.Checked) MessageBox.Show(您

18、選對(duì)了,這是微軟公司開(kāi)發(fā)的操作系統(tǒng), 信息提示, MessageBoxButtons.OK); else if (radiobutton1.Checked | radiobutton4.Checked) MessageBox.Show(您選錯(cuò)了,這是程序設(shè)計(jì)語(yǔ)言, 信息提示, MessageBoxButtons.OK); else MessageBox.Show(您選錯(cuò)了,這是數(shù)據(jù)庫(kù)管理系統(tǒng), 信息提示, MessageBoxButtons.OK); ,a,26,運(yùn)行界面,a,27,圖片框控件 用于在窗體的特殊位置上放置圖形信息,也可以在其上放置多個(gè)控件,因此它可作為其他控件的容器 。,主要屬

19、性: Image獲取或設(shè)置圖片框中顯示的圖像。在運(yùn)行時(shí)再使用Image.FromFile函數(shù)加載圖像。,a,28,設(shè)計(jì)一個(gè)窗體,以選擇命令按鈕方式顯示春、夏、秋、冬4個(gè)季節(jié)的圖片。,Form5窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程: private void button1_Click(object sender, EventArgs e) pictureBox1.Image = Image.FromFile(H:C#2005ch8spring.jpg); private void button2_Click(object sender, EventArgs e) pictureBox1.Im

20、age = Image.FromFile(H:C#2005ch8summer.jpg); private void button3_Click(object sender, EventArgs e) pictureBox1.Image = Image.FromFile(H:C#2005ch8fall.jpg); private void button4_Click(object sender, EventArgs e) pictureBox1.Image = Image.FromFile(H:C#2005ch8winter.jpg); ,a,29,a,30,組合框控件 從一個(gè)列表中一次只能選取

21、或輸入一個(gè)選項(xiàng),其主要特點(diǎn)是具有帶向下箭頭的方框。 在程序運(yùn)行時(shí),按下此按鈕就會(huì)下拉出一個(gè)列表框供用戶選擇項(xiàng)目。另外,還可以在組合框上方的框中輸入數(shù)據(jù)。,a,31,DropDownStyle=Simple DropDownStyle=DropDown DropDownStyle=DropDownList,a,32,組合框的Items屬性是最重要的屬性,它是存放組合框中所有項(xiàng)的集合,對(duì)組合框的操作實(shí)際上就是對(duì)該屬性即項(xiàng)集合的操作。,a,33,組合框的事件,a,34,設(shè)計(jì)一個(gè)窗體,通過(guò)一個(gè)文本框向合框中添加項(xiàng)。,Form6窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程: private void butt

22、on1_Click(object sender, EventArgs e) if (textBox1.Text != ) if (!comboBox1.Items.Contains(textBox1.Text) comboBox1.Items.Add(textBox1.Text); /不添加重復(fù)項(xiàng) ,a,35,運(yùn)行界面,a,36,列表框控件 是一個(gè)為用戶提供選擇的列表,用戶可從列表框列出的一組選項(xiàng)中用鼠標(biāo)選取一個(gè)或多個(gè)所需的選項(xiàng)。 如果有較多的選擇項(xiàng),超出規(guī)定的區(qū)域而不能一次全部顯示時(shí),C#會(huì)自動(dòng)加上滾動(dòng)條。,與組合框類(lèi)似。,a,37,a,38,設(shè)計(jì)一個(gè)窗體,其功能是在兩個(gè)列表框中移動(dòng)數(shù)據(jù)項(xiàng)。

23、,Form7窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程: private void Form7_Load(object sender, EventArgs e) listBox1.Items.Add(清華大學(xué)); listBox1.Items.Add(北京大學(xué)); listBox1.Items.Add(浙江大學(xué)); listBox1.Items.Add(南京大學(xué)); listBox1.Items.Add(武漢大學(xué)); listBox1.Items.Add(中國(guó)科技大學(xué)); listBox1.Items.Add(中國(guó)人民大學(xué)); listBox1.Items.Add(華中科技大學(xué)); listBox

24、1.Items.Add(復(fù)旦大學(xué)); enbutton(); /調(diào)用enbutton()方法 ,a,39,private void enbutton() /自定義方法 if (listBox1.Items.Count = 0) /當(dāng)左列表框?yàn)榭諘r(shí)右移命令按鈕不可用 button1.Enabled = false; button2.Enabled = false; else /當(dāng)左列表框不為空時(shí)右移命令按鈕可用 button1.Enabled = true; button2.Enabled = true; if (listBox2.Items.Count = 0) /當(dāng)右列表框?yàn)榭諘r(shí)左移命令按鈕

25、不可用 button3.Enabled = false; button4.Enabled = false; else /當(dāng)右列表框不為空時(shí)左移命令按鈕可用 button3.Enabled = true; button4.Enabled = true; ,a,40,private void button1_Click(object sender, EventArgs e) if (listBox1.SelectedIndex = 0) /將左列表框中選中項(xiàng)移到右列表框中 listBox2.Items.Add(listBox1.SelectedItem); listBox1.Items.Remov

26、eAt(listBox1.SelectedIndex); enbutton(); /調(diào)用enbutton()方法 private void button2_Click(object sender, EventArgs e) foreach (object item in listBox1.Items)/將左列表框中所有項(xiàng)移到右列表框中 listBox2.Items.Add(item); listBox1.Items.Clear(); enbutton(); /調(diào)用enbutton()方法 ,a,41,private void button3_Click(object sender, Event

27、Args e) if (listBox2.SelectedIndex = 0) /將右列表框中選中項(xiàng)移到左列表框中 listBox1.Items.Add(listBox2.SelectedItem); listBox2.Items.RemoveAt(listBox2.SelectedIndex); enbutton(); /調(diào)用enbutton()方法 private void button4_Click(object sender, EventArgs e) foreach (object item in listBox2.Items)/將右列表框中所有項(xiàng)移到左列表框中 listBox1.I

28、tems.Add(item); listBox2.Items.Clear(); enbutton(); /調(diào)用enbutton()方法 ,a,42,運(yùn)行界面,a,43,帶復(fù)選框的列表框控件 用來(lái)顯示一系列列表項(xiàng)的,不過(guò)每個(gè)列表項(xiàng)前面都有一個(gè)復(fù)選項(xiàng)。這樣,是否選中了某個(gè)列表項(xiàng)就可以很清楚地表現(xiàn)出來(lái)。,a,44,定時(shí)器控件 特點(diǎn)是每隔一定的時(shí)間間隔就會(huì)自動(dòng)運(yùn)行一次定時(shí)器事件。所謂時(shí)間間隔,指的是定時(shí)器事件兩次調(diào)用之間的時(shí)間間隔,一般以毫秒(ms)為基本單位。,a,45,設(shè)計(jì)一個(gè)窗體說(shuō)明定時(shí)器的使用方法。,Form9窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程: private void Form9_Lo

29、ad(object sender, EventArgs e) textBox1.Text = DateTime.Now.ToString(h:mm:ss); timer1.Enabled = true; /啟到定時(shí)器timer1 timer1.Interval = 100; private void timer1_Tick(object sender, EventArgs e) textBox1.Text = DateTime.Now.ToString(h:mm:ss); ,a,46,運(yùn)行界面,a,47,滾動(dòng)條控件 滾動(dòng)條的結(jié)構(gòu)為兩端各有一個(gè)滾動(dòng)箭頭,兩個(gè)滾動(dòng)箭頭中間是滾動(dòng)條部分,在滾動(dòng)條上有

30、一個(gè)能夠移動(dòng)的小方塊,叫做滾動(dòng)框。,水平滾動(dòng)條和垂直滾動(dòng)條,a,48,a,49,設(shè)計(jì)一個(gè)窗體說(shuō)明滾動(dòng)條的使用方法。,Form10窗體: (1)設(shè)計(jì)界面 (2)事件過(guò)程: private void Form10_Load(object sender, EventArgs e) hScrollBar1.Maximum = 100; hScrollBar1.Minimum = 0; hScrollBar1.SmallChange = 2; hScrollBar1.LargeChange = 5; vScrollBar1.Maximum = 100; vScrollBar1.Minimum = 0;

31、vScrollBar1.SmallChange = 2; vScrollBar1.LargeChange = 5; hScrollBar1.Value = 0; vScrollBar1.Value = 0; textBox1.Text = 0; ,a,50,private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) textBox1.Text = hScrollBar1.Value.ToString(d); /將hScrollBar1.Value整數(shù)將實(shí)際寬度轉(zhuǎn)換成字符串在textBox1中顯示 vScrollBar1.V

32、alue = hScrollBar1.Value; private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) textBox1.Text = vScrollBar1.Value.ToString(d); hScrollBar1.Value = vScrollBar1.Value; ,a,51,private void button1_Click(object sender, EventArgs e) if (Convert.ToInt16(textBox1.Text)= 0 ,運(yùn)行界面,a,52,月歷控件 日期/時(shí)間控件

33、 超鏈接標(biāo)簽控件,a,53,多文檔窗體 多文檔界面應(yīng)用程序由一個(gè)應(yīng)用程序(MDI父窗體)中包含多個(gè)文檔(MDI子窗體)組成,父窗體作為子窗體的容器,子窗體顯示各自文檔,它們具有不同的功能。處于活動(dòng)狀態(tài)的子窗體的最大數(shù)目是1,子窗體本身不能成為父窗體,而且不能將其移動(dòng)到父窗體的區(qū)域之外。 多文檔界面應(yīng)用程序有如下特性: (1)所有子窗體均顯示在MDI窗體的工作區(qū)內(nèi),用戶可改變、移動(dòng)子窗體的大小,但被限制在MDI窗體中。 (2)當(dāng)最小化子窗體時(shí),它的圖標(biāo)將顯示在MDI窗體上而不是在任務(wù)欄中。 (3)當(dāng)最大化子窗體時(shí),它的標(biāo)題與MDI窗體的標(biāo)題一起顯示在MDI窗體的標(biāo)題欄上。 (4)MDI窗體和子窗

34、體都可以有各自的菜單,當(dāng)子窗體加載時(shí)覆蓋MDI窗體的菜單。,a,54,a,55,MDI父窗體的方法 一般只使用父窗體的LayoutMdi方法,其使用格式為: MDI父窗體名.LayoutMdi(value) 其功能是在MDI父窗體中排列MDI子窗體,參數(shù)value決定排列方式,有以下4種取值:,LayoutMdi.ArrangeIcons:所有MDI子窗體以圖標(biāo)形式排列在MDI父窗體中。 LayoutMdi.TileHorizontal:所有MDI子窗體均垂直平鋪在MDI父窗體中。 LayoutMdi.TileVertical:所有MDI子窗體均水平平鋪在MDI父窗體中。 LayoutMdi.

35、Cascade:所有MDI子窗體均層疊在MDI父窗體中。,a,56,a,57,【例8.13】 設(shè)計(jì)一個(gè)Windows應(yīng)用程序,說(shuō)明多文檔窗體的使用方法。,Form1窗體,將其IsMdiContainer屬性設(shè)為T(mén)rue : 設(shè)計(jì)界面,a,58,事件過(guò)程: private void button1_Click(object sender, EventArgs e) Form2 child = new Form2(); child.MdiParent = this; child.Show(); n+; child.Text = 第 + n + 個(gè)子窗體; private void button2_

36、Click(object sender, EventArgs e) this.LayoutMdi(System.Windows.Forms. MdiLayout.ArrangeIcons); private void button3_Click(object sender, EventArgs e) this.LayoutMdi(System.Windows.Forms. MdiLayout.Cascade); private void button4_Click(object sender, EventArgs e) this.LayoutMdi(System.Windows.Forms.

37、MdiLayout.TileVertical); ,a,59,private void button5_Click(object sender, EventArgs e) this.LayoutMdi(System.Windows.Forms. MdiLayout.TileHorizontal); ,運(yùn)行界面,a,60,窗體設(shè)計(jì)的事件機(jī)制 什么是事件處理程序 事件處理程序是代碼中的過(guò)程,用于確定事件(如用戶單擊按鈕或消息隊(duì)列收到消息)發(fā)生時(shí)要執(zhí)行的操作。 事件處理程序是綁定到事件的方法。當(dāng)引發(fā)事件時(shí),將執(zhí)行收到該事件的一個(gè)或多個(gè)事件處理程序。 每個(gè)事件處理程序提供兩個(gè)參數(shù)。例如,窗體中一個(gè)命令

38、按鈕button1的Click事件的事件處理程序如下:,a,61,其中,第一個(gè)參數(shù)sender提供對(duì)引發(fā)事件的對(duì)象的引用,第二個(gè)參數(shù)e傳遞特定于要處理的事件的對(duì)象。通過(guò)引用對(duì)象的屬性(有時(shí)引用其方法)可獲得一些信息,如鼠標(biāo)事件中鼠標(biāo)的位置或拖放事件中傳輸?shù)臄?shù)據(jù)。 創(chuàng)建事件處理程序有以下兩種方法: (1)在Windows窗體中創(chuàng)建事件處理程序。 (2)在運(yùn)行時(shí)為Windows窗體創(chuàng)建事件處理程序。,private void button1_Click(object sender, System.EventArgs e) /輸入相應(yīng)的代碼 ,a,62,在Windows窗體中創(chuàng)建事件處理程序 在Wi

39、ndows窗體設(shè)計(jì)器上創(chuàng)建事件處理程序的過(guò)程如下: (1)單擊要為其創(chuàng)建事件處理程序的窗體或控件。 (2)在屬性窗口中單擊“事件”按鈕。 (3)在可用事件的列表中,單擊要為其創(chuàng)建事件處理程序的事件。 (4)在事件名稱(chēng)右側(cè)的框中,鍵入處理程序的名稱(chēng),然后按Enter鍵。如圖8.40所示是為button1命令按鈕選擇button1_Click事件處理程序,這樣C#系統(tǒng)會(huì)在對(duì)應(yīng)窗體的.Designer.cs文件中自動(dòng)添加以下語(yǔ)句: this.button1.Click += new System.EventHandler(this.button1_Click); 該語(yǔ)句的功能是訂閱事件(參見(jiàn)第6章)

40、,即接收器使用加法賦值運(yùn)算符 (+=) 將該委托System.EventHandler(this.button1_Click)添加到源對(duì)象button1的事件中。 (5)將適當(dāng)?shù)拇a添加到該事件處理程序中。,a,63,在運(yùn)行時(shí)為Windows窗體創(chuàng)建事件處理程序 在運(yùn)行時(shí)創(chuàng)建事件處理程序的過(guò)程如下: (1)在代碼編輯器中打開(kāi)要向其添加事件處理程序的窗體。 (2)對(duì)于要處理的事件,將帶有其方法簽名的方法添加到窗體上。 例如,如果要處理命令按鈕button1的Click事件,則需創(chuàng)建如下的一個(gè)方法: private void button1_Click(object sender, System.EventArgs e) /輸入相應(yīng)的代碼 ,a,64,(3)將適合應(yīng)用程序的代碼添加到事件處理程序中。 (4)確定要?jiǎng)?chuàng)建事件處理程序的窗體或控件。 (5)打開(kāi)對(duì)應(yīng)窗體的.Designer.cs文件,添加指定事件處理程序的代碼處理事件。例如,以下代碼指定事件處理程序button1_Click處理命令按鈕控件的Click事件: button1.Click += new System.EventHandler(button1_Click);,a,65,將多個(gè)事件連接到Windows窗體中的單個(gè)事件

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論