cWindows窗體應(yīng)用程序設(shè)計PPT學(xué)習(xí)教案_第1頁
cWindows窗體應(yīng)用程序設(shè)計PPT學(xué)習(xí)教案_第2頁
cWindows窗體應(yīng)用程序設(shè)計PPT學(xué)習(xí)教案_第3頁
cWindows窗體應(yīng)用程序設(shè)計PPT學(xué)習(xí)教案_第4頁
cWindows窗體應(yīng)用程序設(shè)計PPT學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、會計學(xué)1cWindows窗體應(yīng)用程序設(shè)計窗體應(yīng)用程序設(shè)計窗體設(shè)計 窗體(Form)是一個窗口或?qū)υ捒颍谴娣鸥鞣N控件(包括標(biāo)簽、文本框、命令按鈕等)的容器,可用來向用戶顯示信息。8.1.1 創(chuàng)建Windows窗體應(yīng)用程序的過程 添加一個窗體的操作步驟是:選擇“項目”|“添加Windows窗體”菜單命令,在出現(xiàn)的 “添加新項”對話框中,選中“Windows窗體”,輸入相應(yīng)的名稱(這里為Form2.cs),單擊“添加”按鈕。 一個Windows應(yīng)用程序可以包含多個窗體。 第1頁/共70頁窗體類型在C#中,窗體分為如下兩種類型:(1)普通窗體,也稱為單文檔窗體(SDI),前面所有創(chuàng)建的窗體均為普通窗

2、體。普通窗體又分為如下兩種: 模式窗體。這類窗體在屏幕上顯示后用戶必須響應(yīng),只有在它關(guān)閉后才能操作其他窗體或程序。 無模式窗體。這類窗體在屏幕上顯示后用戶可以不必響應(yīng),可以隨意切換到其他窗體或程序進(jìn)行操作。通常情況下,當(dāng)建立新的窗體時,都默認(rèn)設(shè)置為無模式窗體。(2)MDI父窗體,即多文檔窗體,其中可以放置普通子窗體。第2頁/共70頁窗體的常用屬性 1. 布局屬性 2. 窗口樣式屬性 3. 外觀樣式屬性 4. 行為屬性8.1.4 窗體的常用事件8.1.5 窗體的常用方法第3頁/共70頁1.Form1窗體:(1)設(shè)計界面(2)事件過程:Form1.cs文件:/引用部分using System;us

3、ing System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;第4頁/共70頁namespace Proj8_1public partial class Form1 : Form/從Form類繼承Form1窗體 public Form1()/Form1類構(gòu)造函數(shù) InitializeComponent(); /調(diào)用初始化方法,其代碼在Form1.Designer.cs文件中

4、 private void button1_Click(object sender, EventArgs e) Form myform = new Form1_1();/定義Form1_1類對象 myform.ShowDialog(); /以模式窗體方式調(diào)用 private void button2_Click(object sender, EventArgs e) Form myform = new Form1_2();/定義Form1_2類對象 myform.Show(); /以無模式窗體方式調(diào)用 第5頁/共70頁Form1.Designer.cs 文件:namespace Proj8_1

5、 partial class Form1 / /必需的設(shè)計器變量。 / private System.ComponentModel.IContainer components = null; / /清理所有正在使用的資源。 / /如果應(yīng)釋放托管資源,為true;/否則為false。 protected override void Dispose(bool disposing)/重寫基類Dispose()方法 if (disposing & (components != null) components.Dispose(); base.Dispose(disposing); /調(diào)用基類的

6、Dispose()方法 第6頁/共70頁 #region Windows 窗體設(shè)計器生成的代碼 / /設(shè)計器支持所需的方法 - 不要 /使用代碼編輯器修改此方法的內(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.F

7、ont(宋體, 9F, System.Drawing.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.

8、UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click);第7頁/共70頁 / 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,

9、 69); this.button2.Name = button2; this.button2.Size = new System.Drawing.Size(117, 33); this.button2.TabIndex = 1; this.button2.Text = 調(diào)用無模式窗體; this.button2.UseVisualStyleBackColor = true; this.button2.Click += new System.EventHandler(this.button2_Click);/ Form1 this.AutoScaleDimensions = new Syste

10、m.Drawing.SizeF(6F, 12F); this.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; t

11、his.Text = Form1; this.ResumeLayout(false);第8頁/共70頁 #endregion private System.Windows.Forms.button button1;/私有字段 private System.Windows.Forms.button button2;/私有字段 第9頁/共70頁2.Form1_1窗體:(1)設(shè)計界面(2)事件過程:無3.Form1_1窗體:(1)設(shè)計界面(2)事件過程:無第10頁/共70頁Program.cs文件 :using System;using System.Collections.Generic;usin

12、g System.Windows.Forms;namespace Proj8_1 static class Program / / 應(yīng)用程序的主入口點。 / STAThread static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); /啟動窗體為Form1 第11頁/共70頁按F5鍵或單擊工具欄中的按鈕運行本項目。上機(jī)調(diào)試運行結(jié)果。第12頁/共70頁窗體上各事件的引發(fā)順序當(dāng)一個窗體

13、啟動時,執(zhí)行事件過程的次序如下:(1)本窗體上的Load事件過程。(2)本窗體上的Activated事件過程。(3)本窗體上的其他Form級事件過程。(4)本窗體上包含對象的相應(yīng)事件過程。一個窗體被卸載時,執(zhí)行事件過程的次序如下:(1)本窗體上的Closing事件過程。(2)本窗體上的FormClosing事件過程。(3)本窗體上的Closed事件過程。(4)本窗體上的FormClosed事件過程。第13頁/共70頁焦點與Tab鍵次序焦點(Focus)是指當(dāng)前處于活動狀態(tài)的窗體或控件。 要將焦點移到當(dāng)前窗體中的textBox1文本框,可以使用以下命令:textBox1.Focus();第14頁

14、/共70頁控件概述 控件是包含在窗體上的對象,是構(gòu)成用戶界面的基本元素,也是C#可視化編程的重要工具。 工具箱中包含了建立應(yīng)用程序的各種控件,根據(jù)控件的不同用途分為若干個選項卡,可根據(jù)用途單擊相應(yīng)的選項卡,將其展開,選擇需要的控件。常用的控件設(shè)計第15頁/共70頁大多數(shù)控件共有的基本屬性如下 :1)Name屬性2)Text屬性3)尺寸大?。⊿ize)和位置(Location)屬性4)字體屬性(Font)5)顏色屬性(BackColor和ForeColor)6)Cursor屬性7)可見(Visible)和有效(Enabled)屬性第16頁/共70頁富文本框控件提供類似Microsoft Word

15、能夠輸入、顯示或處理具有格式的文本。【例8.2】 設(shè)計一個窗體,說明富文本框的使用方法。 Form2窗體:(1)設(shè)計界面(2)事件過程:private void Form2_Load(object sender, EventArgs e)richtextBox1.LoadFile(H:C#2005ch8file.RTF,RichtextBoxStreamType.RichText);H:C#2005ch8file.RTF,第17頁/共70頁將本窗體設(shè)計為啟動窗體,運行本項目,在富文本框RichtextBox1中顯示H:C#2005ch8file.rtf文件的內(nèi)容。第18頁/共70頁分組框控件面

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

17、nder, EventArgs e)if (checkBox1.Checked & checkBox3.Checked & !checkBox2.Checked & !checkBox4.Checked)MessageBox.Show(您答對了,真的很棒!, 信息提示,MessageBoxButtons.OK); else MessageBox.Show(您答錯了,繼續(xù)努力吧!, 信息提示,MessageBoxButtons.OK);第21頁/共70頁運行界面第22頁/共70頁單選按鈕控件單選按鈕是多選一,只能從多個選項中選擇一個,各選項間的關(guān)系是互斥的。單選按鈕使用時

18、經(jīng)常用多個控件構(gòu)成一個組,同一時刻只能選擇同一組中的一個單選按鈕,因此,經(jīng)常將單選按鈕放在一個分組框中構(gòu)成一個選項組。第23頁/共70頁設(shè)計一個窗體,說明單選按鈕的使用方法。 Form4窗體:(1)設(shè)計界面(2)事件過程:private void button1_Click(object sender, EventArgs e)if (radiobutton3.Checked) MessageBox.Show(您選對了,這是微軟公司開發(fā)的操作系統(tǒng),信息提示, MessageBoxButtons.OK); else if (radiobutton1.Checked | radiobutton4.

19、Checked) MessageBox.Show(您選錯了,這是程序設(shè)計語言, 信息提示, MessageBoxButtons.OK); else MessageBox.Show(您選錯了,這是數(shù)據(jù)庫管理系統(tǒng), 信息提示, MessageBoxButtons.OK); 第24頁/共70頁運行界面第25頁/共70頁圖片框控件 用于在窗體的特殊位置上放置圖形信息,也可以在其上放置多個控件,因此它可作為其他控件的容器 。主要屬性:Image獲取或設(shè)置圖片框中顯示的圖像。在運行時再使用Image.FromFile函數(shù)加載圖像。第26頁/共70頁設(shè)計一個窗體,以選擇命令按鈕方式顯示春、夏、秋、冬4個季節(jié)

20、的圖片。 Form5窗體:(1)設(shè)計界面(2)事件過程: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.Image = Image.FromFile(H:C#2005ch8summer.jpg);private void button3_Click(object sender, EventA

21、rgs 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);第27頁/共70頁第28頁/共70頁組合框控件從一個列表中一次只能選取或輸入一個選項,其主要特點是具有帶向下箭頭的方框。在程序運行時,按下此按鈕就會下拉出一個列表框供用戶選擇項目。另外,還可以在組合框上方的框中輸入數(shù)據(jù)。 組合框的屬性組合框的屬性說明說

22、明DropDownStyle 獲取或設(shè)置指定組合框樣式的值。可取以下值之一:獲取或設(shè)置指定組合框樣式的值。可取以下值之一: DropDown(默認(rèn)值):文本部分可編輯。用戶必須單擊箭頭按鈕(默認(rèn)值):文本部分可編輯。用戶必須單擊箭頭按鈕來顯示列表部分。來顯示列表部分。 DropDownList:用戶不能直接編輯文本部分。用戶必須單擊箭頭:用戶不能直接編輯文本部分。用戶必須單擊箭頭按鈕來顯示列表部分。按鈕來顯示列表部分。 Simple:文本部分可編輯。列表部分總可見。:文本部分可編輯。列表部分總可見。各種樣式的組合框如圖各種樣式的組合框如圖8.19所示。所示。DropDownWidth 獲取或設(shè)

23、置組合框下拉部分的寬度(以像素為單位)。獲取或設(shè)置組合框下拉部分的寬度(以像素為單位)。DropDownHeight 獲取或設(shè)置組合框下拉部分的高度(以像素為單位)。獲取或設(shè)置組合框下拉部分的高度(以像素為單位)。Items表示該組合框中所包含項的集合。表示該組合框中所包含項的集合。SelectedItem獲取或設(shè)置當(dāng)前組合框中選定項的索引。獲取或設(shè)置當(dāng)前組合框中選定項的索引。SelectedText獲取或設(shè)置當(dāng)前組合框中選定項的文本。獲取或設(shè)置當(dāng)前組合框中選定項的文本。Sorted指示是否對組合框中的項進(jìn)行排序。指示是否對組合框中的項進(jìn)行排序。第29頁/共70頁 DropDownStyle=

24、Simple DropDownStyle=DropDown DropDownStyle=DropDownList第30頁/共70頁組合框的Items屬性是最重要的屬性,它是存放組合框中所有項的集合,對組合框的操作實際上就是對該屬性即項集合的操作。 Items的屬性的屬性說明說明Count組合框的項集合中項個數(shù)。組合框的項集合中項個數(shù)。Items的方法的方法說明說明Add向向ComboBox項集合中添加一個項。項集合中添加一個項。AddRange向向ComboBox項集合中添加一個項的數(shù)組。項集合中添加一個項的數(shù)組。Clear移除移除ComboBox項集合中的所有項。項集合中的所有項。Conta

25、ins確定指定項是否在確定指定項是否在ComboBox項集合中。項集合中。Equqls判斷是否等于當(dāng)前對象。判斷是否等于當(dāng)前對象。GetType獲取當(dāng)前實例的獲取當(dāng)前實例的Type。Insert將一個項插入到將一個項插入到ComboBox項集合中指定的索引處。項集合中指定的索引處。IndexOf檢索指定的項在檢索指定的項在ComboBox項集合中的索引。項集合中的索引。Remove從從ComboBox項集合中移除指定的項。項集合中移除指定的項。RemoveAt移除移除ComboBox項集合中指定索引處的項項集合中指定索引處的項第31頁/共70頁組合框的事件組合框的事件組合框的事件說明說明Cli

26、ck 在單擊控件時發(fā)生。在單擊控件時發(fā)生。TextChanged 在在 Text 屬性值更改時發(fā)生。屬性值更改時發(fā)生。SelectedIndexChanged在在SelectedIndex屬性值改變時發(fā)生。屬性值改變時發(fā)生。KeyPress 在控件有焦點的情況下按下鍵時發(fā)生。在控件有焦點的情況下按下鍵時發(fā)生。第32頁/共70頁設(shè)計一個窗體,通過一個文本框向合框中添加項。 Form6窗體:(1)設(shè)計界面(2)事件過程:private void button1_Click(object sender, EventArgs e)if (textBox1.Text != ) if (!comboBox

27、1.Items.Contains(textBox1.Text) comboBox1.Items.Add(textBox1.Text); /不添加重復(fù)項 第33頁/共70頁運行界面第34頁/共70頁列表框控件是一個為用戶提供選擇的列表,用戶可從列表框列出的一組選項中用鼠標(biāo)選取一個或多個所需的選項。如果有較多的選擇項,超出規(guī)定的區(qū)域而不能一次全部顯示時,C#會自動加上滾動條。 與組合框類似。第35頁/共70頁列表框的屬性列表框的屬性說明說明MultiColumn獲取或設(shè)置列表框控件是否支持多列。設(shè)置為獲取或設(shè)置列表框控件是否支持多列。設(shè)置為True,則支持多列,則支持多列,設(shè)置為設(shè)置為False(

28、默認(rèn)值),則不支持多列(默認(rèn)值),則不支持多列SelectedIndex獲取或設(shè)置列表框控件中當(dāng)前選定項從獲取或設(shè)置列表框控件中當(dāng)前選定項從0開始的索引。開始的索引。SelectedIndices獲取一個集合,它包含所有當(dāng)前選定項的從獲取一個集合,它包含所有當(dāng)前選定項的從0開始的索引。開始的索引。SelectedItem獲取或設(shè)置列表框控件中當(dāng)前選定項。獲取或設(shè)置列表框控件中當(dāng)前選定項。SelectedItems獲取一個集合,它包含所有當(dāng)前選定項。獲取一個集合,它包含所有當(dāng)前選定項。Items 獲取列表控件項的集合。獲取列表控件項的集合。SelectionMode 獲取或設(shè)置列表框控件的選擇模

29、式??蛇x以下值之一:獲取或設(shè)置列表框控件的選擇模式??蛇x以下值之一: one:表示只能選擇一項。:表示只能選擇一項。 none:表示無法選擇。:表示無法選擇。 MultiSimple:表示可以選擇多項。:表示可以選擇多項。 MultiExtended:表示可以選擇多項。并且按下:表示可以選擇多項。并且按下Shift鍵的同時單鍵的同時單擊鼠標(biāo)或者同時按下?lián)羰髽?biāo)或者同時按下Shift鍵和箭頭鍵,會將選定內(nèi)容從前一選定項鍵和箭頭鍵,會將選定內(nèi)容從前一選定項擴(kuò)展到當(dāng)前項,按下擴(kuò)展到當(dāng)前項,按下Ctrl鍵的同時單擊鼠標(biāo)將選擇或撤銷選擇列表鍵的同時單擊鼠標(biāo)將選擇或撤銷選擇列表中的某項。中的某項。Text當(dāng)

30、前選取的選項文本。當(dāng)前選取的選項文本。第36頁/共70頁設(shè)計一個窗體,其功能是在兩個列表框中移動數(shù)據(jù)項。Form7窗體:(1)設(shè)計界面(2)事件過程: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(中國科技大學(xué)); listBox1.Items.A

31、dd(中國人民大學(xué)); listBox1.Items.Add(華中科技大學(xué)); listBox1.Items.Add(復(fù)旦大學(xué)); enbutton(); /調(diào)用enbutton()方法第37頁/共70頁private void enbutton() /自定義方法 if (listBox1.Items.Count = 0)/當(dāng)左列表框為空時右移命令按鈕不可用 button1.Enabled = false; button2.Enabled = false; else/當(dāng)左列表框不為空時右移命令按鈕可用 button1.Enabled = true; button2.Enabled = true

32、; if (listBox2.Items.Count = 0)/當(dāng)右列表框為空時左移命令按鈕不可用 button3.Enabled = false; button4.Enabled = false; else/當(dāng)右列表框不為空時左移命令按鈕可用 button3.Enabled = true; button4.Enabled = true; 第38頁/共70頁private void button1_Click(object sender, EventArgs e) if (listBox1.SelectedIndex = 0) /將左列表框中選中項移到右列表框中 listBox2.Items.

33、Add(listBox1.SelectedItem); listBox1.Items.RemoveAt(listBox1.SelectedIndex); enbutton();/調(diào)用enbutton()方法private void button2_Click(object sender, EventArgs e) foreach (object item in listBox1.Items)/將左列表框中所有項移到右列表框中 listBox2.Items.Add(item); listBox1.Items.Clear(); enbutton();/調(diào)用enbutton()方法第39頁/共70頁

34、private void button3_Click(object sender, EventArgs e) if (listBox2.SelectedIndex = 0) /將右列表框中選中項移到左列表框中 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 i

35、n listBox2.Items)/將右列表框中所有項移到左列表框中 listBox1.Items.Add(item); listBox2.Items.Clear(); enbutton();/調(diào)用enbutton()方法第40頁/共70頁運行界面第41頁/共70頁帶復(fù)選框的列表框控件 用來顯示一系列列表項的,不過每個列表項前面都有一個復(fù)選項。這樣,是否選中了某個列表項就可以很清楚地表現(xiàn)出來。 第42頁/共70頁定時器控件 特點是每隔一定的時間間隔就會自動運行一次定時器事件。所謂時間間隔,指的是定時器事件兩次調(diào)用之間的時間間隔,一般以毫秒(ms)為基本單位。 定時器的屬性定時器的屬性說明說明E

36、nabled設(shè)置是否起用定時器控件。若設(shè)置為設(shè)置是否起用定時器控件。若設(shè)置為True(默認(rèn)值),表(默認(rèn)值),表示啟動定時器開始計時;否則,表示暫停定時器的使用。示啟動定時器開始計時;否則,表示暫停定時器的使用。Interval設(shè)置兩個定時器事件之間的時間間隔。設(shè)置時以毫秒為單設(shè)置兩個定時器事件之間的時間間隔。設(shè)置時以毫秒為單位,設(shè)置的范圍是位,設(shè)置的范圍是065535ms。定時器的方法定時器的方法說明說明Start啟動定時器,也可以將啟動定時器,也可以將Enabled屬性設(shè)置為屬性設(shè)置為True來啟動定來啟動定時器。時器。Stop停止定時器,也可以將停止定時器,也可以將Enabled屬性設(shè)置

37、為屬性設(shè)置為False來停止定來停止定時器。時器。第43頁/共70頁設(shè)計一個窗體說明定時器的使用方法。Form9窗體:(1)設(shè)計界面(2)事件過程:private void Form9_Load(object sender, EventArgs e) textBox1.Text = DateTime.Now.ToString(h:mm:ss); timer1.Enabled = true;/啟到定時器timer1 timer1.Interval = 100;private void timer1_Tick(object sender, EventArgs e) textBox1.Text =

38、DateTime.Now.ToString(h:mm:ss);第44頁/共70頁運行界面第45頁/共70頁滾動條控件 滾動條的結(jié)構(gòu)為兩端各有一個滾動箭頭,兩個滾動箭頭中間是滾動條部分,在滾動條上有一個能夠移動的小方塊,叫做滾動框。 水平滾動條和垂直滾動條第46頁/共70頁滾動條的屬性滾動條的屬性說明說明Maximum表示滾動條的最大值。表示滾動條的最大值。Minimum表示滾動條的最小值。表示滾動條的最小值。Value表示目前滾動條所在位置對應(yīng)的值。表示目前滾動條所在位置對應(yīng)的值。LargeChange設(shè)置滾動條的最大變動值。設(shè)置滾動條的最大變動值。SmallChange設(shè)置滾動條的最小變動值

39、。設(shè)置滾動條的最小變動值。滾動條的事件滾動條的事件說明說明Scroll當(dāng)用鼠標(biāo)壓住滾動條上的滑塊進(jìn)行移動時,滑塊被重新定位當(dāng)用鼠標(biāo)壓住滾動條上的滑塊進(jìn)行移動時,滑塊被重新定位時發(fā)生。時發(fā)生。Change當(dāng)改變當(dāng)改變Value屬性值時發(fā)生。屬性值時發(fā)生。第47頁/共70頁設(shè)計一個窗體說明滾動條的使用方法。Form10窗體:(1)設(shè)計界面(2)事件過程:private void Form10_Load(object sender, EventArgs e) hScrollBar1.Maximum = 100; hScrollBar1.Minimum = 0; hScrollBar1.SmallCh

40、ange = 2; hScrollBar1.LargeChange = 5; vScrollBar1.Maximum = 100; vScrollBar1.Minimum = 0; vScrollBar1.SmallChange = 2; vScrollBar1.LargeChange = 5; hScrollBar1.Value = 0; vScrollBar1.Value = 0; textBox1.Text = 0;第48頁/共70頁private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) textBox1.Tex

41、t = hScrollBar1.Value.ToString(d); /將hScrollBar1.Value整數(shù)將實際寬度轉(zhuǎn)換成字符串在textBox1中顯示 vScrollBar1.Value = hScrollBar1.Value;private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) textBox1.Text = vScrollBar1.Value.ToString(d); hScrollBar1.Value = vScrollBar1.Value;第49頁/共70頁private void button1_C

42、lick(object sender, EventArgs e) if (Convert.ToInt16(textBox1.Text)= 0 & Convert.ToInt16(textBox1.Text) = 100) hScrollBar1.Value = Convert.ToInt16(textBox1.Text); vScrollBar1.Value = Convert.ToInt16(textBox1.Text); 運行界面第50頁/共70頁月歷控件日期/時間控件超鏈接標(biāo)簽控件 第51頁/共70頁多文檔窗體 多文檔界面應(yīng)用程序由一個應(yīng)用程序(MDI父窗體)中包含多個文檔(MD

43、I子窗體)組成,父窗體作為子窗體的容器,子窗體顯示各自文檔,它們具有不同的功能。處于活動狀態(tài)的子窗體的最大數(shù)目是1,子窗體本身不能成為父窗體,而且不能將其移動到父窗體的區(qū)域之外。多文檔界面應(yīng)用程序有如下特性: (1)所有子窗體均顯示在MDI窗體的工作區(qū)內(nèi),用戶可改變、移動子窗體的大小,但被限制在MDI窗體中。 (2)當(dāng)最小化子窗體時,它的圖標(biāo)將顯示在MDI窗體上而不是在任務(wù)欄中。 (3)當(dāng)最大化子窗體時,它的標(biāo)題與MDI窗體的標(biāo)題一起顯示在MDI窗體的標(biāo)題欄上。 (4)MDI窗體和子窗體都可以有各自的菜單,當(dāng)子窗體加載時覆蓋MDI窗體的菜單。第52頁/共70頁MDI父窗體屬性父窗體屬性說明說明

44、ActiveMdiChild表示當(dāng)前活動的表示當(dāng)前活動的MDI子窗口,如沒有子窗口則返回子窗口,如沒有子窗口則返回NULLIsMdiContainer指示窗體是否為指示窗體是否為MDI父窗體,值為父窗體,值為True時表示是父窗體,值時表示是父窗體,值為為False時表示是普通窗體時表示是普通窗體MdiChildren以窗體數(shù)組形式返回所有以窗體數(shù)組形式返回所有MDI子窗體子窗體第53頁/共70頁MDI父窗體的方法 一般只使用父窗體的LayoutMdi方法,其使用格式為: MDI父窗體名.LayoutMdi(value) 其功能是在MDI父窗體中排列MDI子窗體,參數(shù)value決定排列方式,有

45、以下4種取值: LayoutMdi.ArrangeIcons:所有MDI子窗體以圖標(biāo)形式排列在MDI父窗體中。 LayoutMdi.TileHorizontal:所有MDI子窗體均垂直平鋪在MDI父窗體中。 LayoutMdi.TileVertical:所有MDI子窗體均水平平鋪在MDI父窗體中。 LayoutMdi.Cascade:所有MDI子窗體均層疊在MDI父窗體中。第54頁/共70頁MDI子窗體屬性子窗體屬性說明說明IsMdiChild指示窗體是否為指示窗體是否為MDI子窗體,值為子窗體,值為True時表示是子窗時表示是子窗體,值為體,值為False時表示是一般窗體時表示是一般窗體Md

46、iParent用來指定該子窗體的用來指定該子窗體的MDI父窗體父窗體第55頁/共70頁【例8.13】 設(shè)計一個Windows應(yīng)用程序,說明多文檔窗體的使用方法。Form1窗體,將其IsMdiContainer屬性設(shè)為True :設(shè)計界面第56頁/共70頁事件過程:private void button1_Click(object sender, EventArgs e)Form2 child = new Form2(); child.MdiParent = this; child.Show(); n+; child.Text = 第 + n + 個子窗體;private void button

47、2_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.MdiLay

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

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

50、器上創(chuàng)建事件處理程序的過程如下:(1)單擊要為其創(chuàng)建事件處理程序的窗體或控件。(2)在屬性窗口中單擊“事件”按鈕。 (3)在可用事件的列表中,單擊要為其創(chuàng)建事件處理程序的事件。(4)在事件名稱右側(cè)的框中,鍵入處理程序的名稱,然后按Enter鍵。如圖8.40所示是為button1命令按鈕選擇button1_Click事件處理程序,這樣C#系統(tǒng)會在對應(yīng)窗體的.Designer.cs文件中自動添加以下語句:this.button1.Click += new System.EventHandler(this.button1_Click);該語句的功能是訂閱事件(參見第6章),即接收器使用加法賦值運算符 (+=) 將該委托System.EventHandler(this.button1_Click)添加到源對象button1的事件中。(5)將適當(dāng)?shù)拇a添加到該事件處理程序中。第61頁/共70頁在運行時為Windows窗體創(chuàng)建事件處理程序在運行時創(chuàng)建事件處理程序的過程如下:(1)在代碼編輯器中打開要向其添加事件處理程序的窗體。 (2)對于要處理的事件,將帶有其方法簽名的方法添加到窗體上。 例如,如果要處理命令按鈕button1的Click事

溫馨提示

  • 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

提交評論