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

下載本文檔

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

文檔簡介

1、會計學(xué)1窗體應(yīng)用窗體應(yīng)用(yngyng)程序設(shè)計程序設(shè)計2第一頁,共104頁。6.1 一個(y )簡單的文本編輯器一個簡單的文本編輯器應(yīng)用程序: 可以(ky)實現(xiàn)對txt文件的讀取和保存以及對字符的簡單編輯操作。第1頁/共103頁第二頁,共104頁。6.1.1 創(chuàng)建(chungjin)文本編輯器程序的步驟6.1 一個(y )簡單的文本編輯器(1)創(chuàng)建C#窗體應(yīng)用程序TxtEditApp:將窗體Form1的text屬性(shxng)值設(shè)置為“簡單的文本編輯器”,然后在窗體上分別添加控件richTextBox1和組件openFileDialog1、saveFileDialog1、toolStrip

2、1,并將控件richTextBox1的Dock屬性(shxng)值設(shè)置為Fill,使之充滿整個窗體。編輯器界面第2頁/共103頁第三頁,共104頁。6.1.1 創(chuàng)建(chungjin)文本編輯器程序的步驟6.1 一個(y )簡單的文本編輯器(2)選擇菜單“項目|添加組件”命令,在打開的“添加新項”對話框中選擇“Windows窗體”項,然后單擊“添加”按鈕,即可為程序(chngx)添加一個新的窗體(其默認名為Form2)。在新窗體上添加幾個Label控件,以顯示相關(guān)信息:第3頁/共103頁第四頁,共104頁。6.1.1 創(chuàng)建文本編輯器程序(chngx)的步驟6.1 一個(y )簡單的文本編輯器(

3、3)點擊(din j)控件richTextBox1上方的菜單欄,然后依次輸入相應(yīng)的菜單項:第4頁/共103頁第五頁,共104頁。6.1.1 創(chuàng)建(chungjin)文本編輯器程序的步驟6.1 一個(y )簡單的文本編輯器 (4)在菜單設(shè)計界面中雙擊“Open file”項,在自動形成的openFileToolStripMenuItem_Click()函數(shù)中編寫相關(guān)代碼,結(jié)果(ji gu)如下:/“Open file”菜單項private void openFileToolStripMenuItem_Click(object sender, EventArgs e) openFileDialog

4、1.Filter = txt files(*.txt)|*.txt; if (openFileDialog1.ShowDialog() = DialogResult.OK) richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText); 第5頁/共103頁第六頁,共104頁。6.1.1 創(chuàng)建文本編輯器程序(chngx)的步驟6.1 一個(y )簡單的文本編輯器用同樣的方法為其他(qt)菜單項編寫事件處理代碼,結(jié)果如下:/“Save file”菜單項private void saveFileToo

5、lStripMenuItem_Click(object sender, EventArgs e) saveFileDialog1.Filter = txt files(*.txt)|*.txt; if (saveFileDialog1.ShowDialog() = DialogResult.OK) richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText); /“Exit”菜單項private void exitToolStripMenuItem_Click(object sender, Ev

6、entArgs e) Close();/“About”菜單項private void aboutToolStripMenuItem_Click(object sender, EventArgs e) Form2 frm = new Form2(); frm.ShowDialog();第6頁/共103頁第七頁,共104頁。6.1.1 創(chuàng)建(chungjin)文本編輯器程序的步驟6.1 一個(y )簡單的文本編輯器(4)執(zhí)行該程序后,選擇相應(yīng)(xingyng)的菜單命令,可以打開txt文件,也可以在richTextBox1編輯文本后保存到txt文件中:第7頁/共103頁第八頁,共104頁。6.1.

7、1 創(chuàng)建文本編輯器程序(chngx)的步驟6.1 一個(y )簡單的文本編輯器【說明】 組件是指沒有界面的組件(運行時不可見);控件是指有界面的組件(運行時可見)。但有的時候(sh hou)也把兩者統(tǒng)稱為組件,其具體意義要根據(jù)上下文來決定。第8頁/共103頁第九頁,共104頁。6.2 組件的公共屬性、事件(shjin)和方法C#中的組件都繼承System.Object類窗體控件都繼承了System.Windows.Forms.Control類(該類也繼承Object類)因此了解System.Object類的一些常用屬性(shxng)、事件和方法對掌握下文要介紹的常用組件的使用方法有著事半功倍的

8、效果。第9頁/共103頁第十頁,共104頁。6.2.1 Object類6.2 組件的公共屬性(shxng)、事件和方法1. public virtual bool Equals(object obj)該方法用于判斷當前對象和給定的對象是否相等。在默認情況下(沒有重寫該方法時),對象a和b相等是指a和b是非空的且指向同一個對象。由于Equals()方法是一個虛方法,我們可以在定義的類中重寫它。這樣,對象a和b在什么情況下才算相等是完全由重寫代碼來決定。實際上,C#的許多類都重寫了Equals()方法。 2. public virtual int GetHashCode()GetHashCode(

9、)方法返回object對象的哈希碼,哈希碼是通過一定的算法并根據(jù)對象在內(nèi)存中的地址來計算的。此算法可以保證(bozhng)不同對象的哈希碼重復(fù)的可能性很小。 第10頁/共103頁第十一頁,共104頁。6.2.1 Object類6.2 組件(z jin)的公共屬性、事件和方法2. public virtual string ToString()在定義的類中可以重寫ToString()方法(fngf)。如果沒有重寫,則該方法(fngf)返回對象所屬類的名稱。實際上,C#提供的類幾乎都重寫了該方法(fngf),其中大部分的功能是將相應(yīng)類型的數(shù)據(jù)轉(zhuǎn)化為字符串數(shù)據(jù)。第11頁/共103頁第十二頁,共104

10、頁。6.2.2 Control類6.2 組件的公共屬性、事件(shjin)和方法 Control類的屬性、方法和事件是所有窗體控件供有的。了解Control類的特征對窗體應(yīng)用(yngyng)程序設(shè)計是至關(guān)重要的。 1. Control類的屬性(1)Text屬性Text屬性值就是控件顯示的文本(wnbn)內(nèi)容,也是用戶輸入字符創(chuàng)串地方,其類型為字符串型。在程序運行的過程中,該屬性值可讀可寫。如 Edit1-Text = 北京奧運; /向編輯框?qū)懽执?String str = Edit1-Text; /讀取編輯框中的內(nèi)容(2)Anchor屬性該屬性用于設(shè)定控件與其容器控件在四個邊沿(左、右、上、下

11、)距離上的固定位置關(guān)系。Anchor屬性是一種集合類型,可以同時取多個值,如:richTextBox1.Anchor = (AnchorStyles.Top|AnchorStyles.Bottom);第12頁/共103頁第十三頁,共104頁。6.2.2 Control類6.2 組件的公共(gnggng)屬性、事件和方法(3)Dock屬性該屬性用于設(shè)定子控件在其容器控件中的填充方式,其取值和意義是:DockStyle.Fill:任何時候子控件都填充整個容器控件DockStyle.None:子控件按照設(shè)計時的界面出現(xiàn),不隨容器控件的大小發(fā)生變化而變化DockStyle.Top、DockStyle.

12、Bottom、DockStyle.Left、DockStyle.Right:分別表示子控件向上、向下(xin xi)、向左和向右充滿半個容器控件,容器控件的大小發(fā)生變化時子控件仍然保持這種狀態(tài)第13頁/共103頁第十四頁,共104頁。6.2.2 Control類6.2 組件的公共(gnggng)屬性、事件和方法(3)Dock屬性該屬性用于設(shè)定子控件在其容器(rngq)控件中的填充方式,其取值和意義是:DockStyle.Fill:任何時候子控件都填充整個容器(rngq)控件DockStyle.None:子控件按照設(shè)計時的界面出現(xiàn),不隨容器(rngq)控件的大小發(fā)生變化而變化DockStyle.

13、Top、DockStyle.Bottom、DockStyle.Left、DockStyle.Right:分別表示子控件向上、向下、向左和向右充滿半個容器(rngq)控件,容器(rngq)控件的大小發(fā)生變化時子控件仍然保持這種狀態(tài)Control類的其他屬性,請參見教材(jioci)中表6.1 。第14頁/共103頁第十五頁,共104頁。6.2.2 Control類6.2 組件的公共屬性、事件(shjin)和方法2. Control類的方法(1)FindForm()方法該方法返回控件所在(suzi)的窗體。(2)Focus()方法 該方法的作用是使控件獲得焦點。(3)GetContainerCon

14、trol()方法 該方法返回父控件鏈的下一個ContainerControl。(4)Hide()方法該方法用于隱藏控件,使之不可見,但控件并沒有被銷毀,相當于令visible 屬性值為false。第15頁/共103頁第十六頁,共104頁。6.2.2 Control類6.2 組件的公共(gnggng)屬性、事件和方法2. Control類的方法(5)Show()方法 該方法用于顯示(xinsh)控件,使之可見,但控件并不是創(chuàng)建一個新的控件,而是顯示(xinsh)已有的控件,相當于令visible 屬性值為true。(6)Scale(int m)方法將控件放大或縮小控件為原來的m倍。(7)Cont

15、ains(Control ctl)方法該方法判斷控件ctl是否是當前控件的子控件,如果是則返回true,否則返回false。(8)GetTopLevel()方法判斷當前控件是否為頂層控件,如果是則返回true,否則返回false。第16頁/共103頁第十七頁,共104頁。6.2.2 Control類6.2 組件(z jin)的公共屬性、事件和方法3. Control類的事件點擊、滾動、移動鼠標,按下鍵盤等操作都會產(chǎn)生相應(yīng)的事件,事件發(fā)生時會調(diào)用相應(yīng)的事件處理函數(shù)。這種處理函數(shù)實際上也是Control類的方法,與上面方法不同的是,事件處理函數(shù)是在事件發(fā)生時由系統(tǒng)自動調(diào)用(而不是由用戶代碼調(diào)用);

16、而上面方法則使由用戶代碼調(diào)用。顯然,利用事件和處理函數(shù)之間的自動調(diào)用關(guān)系,可以方便實現(xiàn)上面方法難以完成的一些功能。Control類定義了大量的事件,當在屬性編輯框中雙擊事件名右邊的空白處時即可自動產(chǎn)生事件處理函數(shù)的框架,我們(w men)只需在函數(shù)框架中編寫相應(yīng)的事件處理代碼即可。第17頁/共103頁第十八頁,共104頁。6.2.2 Control類6.2 組件的公共屬性、事件(shjin)和方法3. Control類的事件(shjin)鼠標事件(shjin)ClickDoubleClickMouseEnterMouseLeaveMouseDownMouseUpMouseMoveMouseHo

17、ver鍵盤事件(shjin)KeyPressKeyDownKeyUp拖動事件(shjin)DragDropDragEnterDragLeaveDragOver 焦點事件(shjin)EnterLeave 第18頁/共103頁第十九頁,共104頁。6.3.1 按鈕類控件6.3 常用(chn yn)的控件(1)Button控件(Button控件具有一定的代表性,這里稍微詳細地介紹此控件)Button控件是最常用的按鈕控件,幾乎在窗體應(yīng)用程序中都涉及到它。它允許用戶通過單擊操作(cozu)來執(zhí)行某些代碼。單擊一個按鈕相當于執(zhí)行相應(yīng)的一個函數(shù),該函數(shù)就是單擊Button按鈕時產(chǎn)生的Click事件的事件

18、處理函數(shù)。在設(shè)計界面中雙擊Button控件(或選中該按鈕后在屬性框中雙擊“Click”項右邊的空白處)即可自動形成(xngchng)該函數(shù)框架:private void button1_Click(object sender, EventArgs e) /事件處理代碼當單擊Button控件時,該函數(shù)被執(zhí)行。我們需要做的是,根據(jù)需要在該函數(shù)中編寫相應(yīng)的代碼,以完成既定的功能。第19頁/共103頁第二十頁,共104頁。6.3.1 按鈕類控件6.3 常用(chn yn)的控件button1_Click(object sender, EventArgs e)有兩個參數(shù)(其他許多事件處理函數(shù)也有這兩個參

19、數(shù)):sender:保存了導(dǎo)致該事件發(fā)生的控件e:則保存了所發(fā)生的事件例如,我們可以用下列(xili)代碼顯示這兩個參數(shù)的相關(guān)信息:private void button1_Click(object sender, EventArgs e) Button bt = (Button)sender; textBox1.Text = bt.Text; Type ty = e.GetType(); textBox2.Text = ty.ToString(); 結(jié)果textBox1和textBox2分別顯示“button1”和“System.Windows.Forms. MouseEventArgs”。

20、第20頁/共103頁第二十一頁,共104頁。6.3.1 按鈕類控件6.3 常用(chn yn)的控件(2)RadioButton按鈕(單選按鈕)Checked屬性(shxng):當該值為true時處于選中狀態(tài),為false時處于未選中狀態(tài),反之亦然。RadioButton按鈕具有排斥性,即當一個按鈕為選中狀態(tài)時,其他的RadioButton則處于未被選中狀態(tài)CheckedChanged事件:當單選按鈕的狀態(tài)發(fā)生改變(Checked屬性值由true變?yōu)閒alse,或由false變?yōu)閠rue)時,CheckedChanged事件被觸發(fā),緊接著執(zhí)行CheckedChanged()方法。因此,希望在單

21、選按鈕的狀態(tài)發(fā)生改變時完成一些(yxi)操作,相應(yīng)代碼應(yīng)該在該方法中編寫:private void radioButton1_CheckedChanged(object sender, EventArgs e) /事件處理代碼第21頁/共103頁第二十二頁,共104頁。6.3.1 按鈕類控件6.3 常用(chn yn)的控件(3)CheckBox按鈕(復(fù)選按鈕)Checked屬性:復(fù)選按鈕與單選按鈕很相似,它也通常成組出現(xiàn),其選中與否也完全由它的Checked屬性值來決定。不同的是,在同一時刻允許有0個或多個復(fù)選按鈕被選中。CheckedChanged事件:其觸發(fā)方式和處理函數(shù)的調(diào)用(dioy

22、ng)和編寫方法與單選按鈕的相同。第22頁/共103頁第二十三頁,共104頁。6.3.1 按鈕類控件6.3 常用(chn yn)的控件【例6.1】 按鈕類控件的應(yīng)用舉例。本例創(chuàng)建一個窗體應(yīng)用程序?qū)崿F(xiàn)(shxin)的功能包括:(1)將輸入的字符串轉(zhuǎn)換為相應(yīng)的大寫或小寫字符串;(2)可以指定轉(zhuǎn)換的方式(大寫或小寫),如果不指定方式則原樣輸出;(3)可以限制輸入字符的范圍:字母、數(shù)字或其他可視字符。程序界面第23頁/共103頁第二十四頁,共104頁。6.3.1 按鈕類控件6.3 常用(chn yn)的控件【例6.1】 按鈕類控件的應(yīng)用舉例。本例創(chuàng)建一個窗體應(yīng)用程序?qū)崿F(xiàn)的功能包括:(1)將輸入的字符串

23、轉(zhuǎn)換為相應(yīng)的大寫或小寫字符串;(2)可以指定(zhdng)轉(zhuǎn)換的方式(大寫或小寫),如果不指定(zhdng)方式則原樣輸出;(3)可以限制輸入字符的范圍:字母、數(shù)字或其他可視字符。設(shè)計思想:(1)字符串的大、小寫轉(zhuǎn)換(zhunhun)可以用類string的ToLower()和ToUpper()方法來實現(xiàn);(2)轉(zhuǎn)換(zhunhun)方式的指定通過單選按鈕來輔助完成;(3)字符輸入范圍的限制則由輔助完成,其中還用到了TextBox類型控件的KeyPress事件和KeyUp事件。第24頁/共103頁第二十五頁,共104頁。6.3.1 按鈕類控件6.3 常用(chn yn)的控件程序的關(guān)鍵代碼(di

24、 m)如下: public partial class Form1 : Form private int flag = 0; private string str = ; public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) str = textBox1.Text; if (flag = 1) str = str.ToLower(); else if (flag = 2) str = str.ToUpper(); /如果flag=0,則表示原樣輸出 textBox

25、2.Text = str; 第25頁/共103頁第二十六頁,共104頁。6.3.1 按鈕類控件6.3 常用(chn yn)的控件 private void radioButton1_CheckedChanged(object sender, EventArgs e) flag = 1; /1表示轉(zhuǎn)換(zhunhun)為小寫字符 private void radioButton2_CheckedChanged(object sender, EventArgs e) flag = 2; /2表示轉(zhuǎn)換(zhunhun)為大寫字符 第26頁/共103頁第二十七頁,共104頁。6.3.1 按鈕類控件6.

26、3 常用(chn yn)的控件 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) char c = e.KeyChar; int ascii = c;/獲取字符(z f)的ASCII碼 if (ascii = 65 & ascii = 97 & ascii = 48 & ascii = 57) /c為數(shù)字時 if (checkBox2.Checked) str += c.ToString(); /如果允許輸入數(shù)字 else /c為其他可視符號 /如果允許輸入其他可視符號 if (chec

27、kBox3.Checked) str += c.ToString(); 第27頁/共103頁第二十八頁,共104頁。6.3.1 按鈕類控件6.3 常用(chn yn)的控件 private void textBox1_KeyUp(object sender, KeyEventArgs e) textBox1.Text = str; textBox1.Focus(); /將光標置于最后一個(y )字符后面 textBox1.Select(textBox1.Text.Length, 0); 第28頁/共103頁第二十九頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的

28、控件1. TextBox控件(文本框)文本框經(jīng)常用于獲取用戶輸入的文本或顯示程序以文本方式輸出的結(jié)果,可以用于簡單的文本編輯操作。 (1)重要屬性(shxng)Text屬性(shxng) 該屬性(shxng)是文本框最常用的屬性(shxng),其顯示的文本正是包含在此屬性(shxng)中,類型為string。默認情況下,Text屬性(shxng)可以保存最大長度為2048個字符。該屬性(shxng)可讀可寫,如:textBox1.Text = 中華人民共和國!;string s = textBox1.Text;SelectedText屬性(shxng) 該屬性(shxng)值返回文本框中已被選

29、中的文本。SelectionLength屬性(shxng) 該屬性(shxng)值返回文本框中已被選中的文本的長度,即SelectedText的長度。第29頁/共103頁第三十頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件SelectionStart屬性 該屬性值返回文本框中已被選中的文本的開始位置,如果沒有文本被選中,則返回緊跟(jn n)在當前光標后面的字符的位置。Modified屬性 當更改文本框的內(nèi)容時,該屬性被設(shè)置為true。ReadOnly屬性當ReadOnly屬性值為true時文本框中的字符只能被讀(如可復(fù)制等),而不能進行寫操作(如修改、刪

30、除等)。ReadOnly屬性的默認值為false,這時文本框可讀可寫。PasswordChar屬性 當PasswordChar屬性值設(shè)置為“*”,在用該編輯框輸入字符時它顯示的都是“*”(顯示星號);當然也可以PasswordChar屬性值設(shè)置為其它字符,那么在輸入時就顯示相應(yīng)的字符。該屬性的默認值為空,這時輸入的字符被原樣顯示。第30頁/共103頁第三十一頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件BorderStyle屬性BorderStyle屬性有三個值:None、FixedSingle和Fixed3D(默認值),不同取值的效果如下圖:HideSe

31、lection屬性當取值為true時,如果文本框失去焦點,則被選中的文本不再保持被選中狀態(tài);當該屬性取值為false時,如果文本框失去焦點,則被選中的文本仍然保持被選中狀態(tài)。第31頁/共103頁第三十二頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件Multiline屬性 Multiline為布爾型屬性。當其取值為false(默認值)時,表示只能輸入一行字符;當取值為true時,表示允許輸入多行字符,rn表示換行。例如,下列代碼將在textBox1中輸出(shch)兩行字符:textBox1.Text += aaaaaaarn;textBox1.Text +

32、= ccc;ScrollBars屬性該屬性用于設(shè)置文本框的滾動條。它有四種取值:None:沒有滾動條Horizontal:只有水平方向上有滾動條Vertical:只有垂直方向上有滾動條Both:垂直和水平方向上都有滾動條第32頁/共103頁第三十三頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件Lines屬性 當Multiline屬性為true時,文本框中允許編輯多行字符。利用文本框的Lines屬性則可以實現(xiàn)(shxin)逐行訪問。 Lines屬性值的類型為字符串數(shù)組string。例如,可以用下列語句將文本框textBox1中的數(shù)據(jù)逐行讀出來:string

33、lines = textBox1.Lines;for (int i = 0; i lines.Length; i+) /處理第i+1行數(shù)據(jù)linesi 第33頁/共103頁第三十四頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件(2)重要方法SelectAll()方法該方法用于選中文本框中所有的文本。Select(int start, int length)方法該方法用于選中文本框中從索引(suyn)為start的字符開始一共length字符的文本。Undo()方法該方法用于撤銷上一次的操作。Copy()方法該方法用于將文本框中被選中的字符復(fù)制到剪貼板中。P

34、aste()方法該方法用于將剪貼板中的內(nèi)容替換到文本框中被選中的內(nèi)容。Cut()方法該方法用于將文本框中被選中的字符剪切到剪貼板中。第34頁/共103頁第三十五頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件(3)重要(zhngyo)事件ModifiedChanged事件當Modified屬性值發(fā)生變動時該事件發(fā)生。TextChanged事件一旦文本框的內(nèi)容發(fā)生改變,都會立即觸發(fā)該事件,從而調(diào)用相應(yīng)的事件處理函數(shù)。第35頁/共103頁第三十六頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件2. RichTextBox控件(

35、1)RichTextBox控件重要的屬性SelectionColor屬性該屬性用于設(shè)置被選中文本的顏色。例如:richTextBox1.SelectionColor = Color.Red; /紅色(hngs)SelectionFont屬性該屬性用于設(shè)置被選中文本的字體。例如:richTextBox1.SelectionFont = new Font(隸書, 18, FontStyle.Bold | FontStyle.Italic | FontStyle.Underline);第36頁/共103頁第三十七頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件(2

36、)RichTextBox控件重要的方法Find()方法該方法用于在RichTextBox控件中尋找一個(y )給定的字符串,返回字符串在RichTextBox控件中第一個(y )匹配字符的索引,如果查找失敗則返回-1。它重載有多個版本,常用的包括:int richTextBox1.Find(string str);int richTextBox1.Find(string str, RichTextBoxFinds option);int richTextBox1.Find(string str, int start, RichTextBoxFinds option);int richTextB

37、ox1.Find(string str, int start, int end, RichTextBoxFinds option); 第37頁/共103頁第三十八頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件LoadFile()方法 該方法用于將指定(zhdng)的文件加載到RichTextBox控件中,它也有三種重載版本,與上述SaveFile()方法分別對應(yīng)的是:void LoadFile(string path)void LoadFile(string path, RichTextBoxStreamType fileType)例如,下列語句將在控件r

38、ichTextBox2中打開C:/text.rtf文件:richTextBox2.LoadFile(C:/text.rtf);或者,richTextBox2.LoadFile(C:/text.rtf, RichTextBoxStreamType.RichText);第38頁/共103頁第三十九頁,共104頁。6.3.2 文本(wnbn)類控件6.3 常用(chn yn)的控件(3)RichTextBox控件重要的事件ModifiedChanged事件RichTextBox控件中的文本一旦受到更改,立即觸發(fā)該事件。SelectionChanged事件觸發(fā)條件是:光標移動(ydng),即一旦移動(

39、ydng)光標,該事件即可發(fā)生。因此可以利用該事件監(jiān)控光標。第39頁/共103頁第四十頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件1. ListBox控件(列表框)(1)重要屬性SelectionMode屬性當該屬性取值為SelectionMode.One時表示一次只能(zh nn)選中ListBox控件中的1項(默認設(shè)置):listBox1.SelectionMode = SelectionMode.One;當為SelectionMode.MultiSimple時表示可以選擇多項,為None時不能選擇任何項。Items.Count屬性該屬性返回Li

40、stBox控件中項的總數(shù)。第40頁/共103頁第四十一頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件SelectedIndex屬性該屬性返回被選中的項的索引(suyn)值;如果ListBox控件允許選擇多項(SelectionMode屬性值取SelectionMode.MultiSimple),則該屬性返回所有被選中的項中索引(suyn)值最小的項的索引(suyn)值。SelectedItem屬性 該屬性返回被選中的項;如果ListBox控件允許選擇多項,則該屬性返回所有被選中的項中索引(suyn)值最小的項。SelectedItemsi屬性該屬性返回

41、所有被選中的項中索引(suyn)值為i的項。Itemsi屬性 該屬性返回索引(suyn)值為i的項。第41頁/共103頁第四十二頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件SelectedIndices.Count屬性 該屬性返回(fnhu)所有被選中的項的總數(shù)。例如,利用下列語句可以將listBox1控件中所有被選中的項復(fù)制到listBox2控件中:for (int i = 0; i listBox1.SelectedIndices.Count; i+) listBox2.Items.Add(listBox1.SelectedItemsi.ToSt

42、ring();第42頁/共103頁第四十三頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件(2)重要方法Items.Add()方法該方法用于一個字符串添加到ListBox控件中。例如:listBox1.Items.Add(中國);SetSelected()方法該方法用于將指定的項設(shè)置為選中狀態(tài)(zhungti)或為未被選中狀態(tài)(zhungti)。例如: listBox1.SetSelected(1, true); /將索引號為1的項設(shè)置為選中狀態(tài)(zhungti) listBox1.SetSelected(3, false); /將索引號為3的項設(shè)置為未

43、被選中狀態(tài)(zhungti)第43頁/共103頁第四十四頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件IndexFromPoint()方法利用該方法可以獲取ListBox控件中鼠標所指向的項的索引號,從而可以方便地讀取ListBox控件中的任意一項。該方法通常是在有關(guān)鼠標事件處理函數(shù)(hnsh)中調(diào)用,如: private void listBox1_MouseDown(object sender, MouseEventArgs e) int index = listBox1.IndexFromPoint(e.X, e.Y); /獲取索引 /其他處理代

44、碼第44頁/共103頁第四十五頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件Items.RemoveAt()方法該方法根據(jù)給定的索引號從ListBox控件中刪除相應(yīng)的項。例如,下面(xi mian)語句是將索引為2的項從listBox1控件中刪除:listBox1.Items.RemoveAt(2);Clear()方法該方法用于清空ListBox控件中的內(nèi)容。ClearSelected()方法該方法用于清空被選擇的項,使得所有項都變?yōu)槲幢贿x中的狀態(tài)。第45頁/共103頁第四十六頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn

45、yn)的控件(3)重要事件SelectedIndexChanged事件當焦點在ListBox控件中的項之間發(fā)生變動或點擊(din j)ListBox控件時都會觸發(fā)該事件。相應(yīng)的處理函數(shù)如下:private void listBox1_SelectedIndexChanged(object sender, EventArgs e) /事件處理代碼第46頁/共103頁第四十七頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件2 CheckedListBox控件 CheckedListBox控件和ListBox控件的用法基本相同,不同的是,前者的每項旁邊增加了一

46、個復(fù)選框,表示(biosh)該項是否被選中。因此,CheckedListBox控件增加了一些支持訪問這種復(fù)選框的屬性等。例如,CheckedListBox控件的CheckedItems.Count屬性值表示(biosh)一共被選中的復(fù)選框的個數(shù),CheckedItemsi屬性則返回索引為i的在復(fù)選框中被選中的項。第47頁/共103頁第四十八頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件3 ComboBox控件(組合框) ComboBox控件和ListBox控件也比較相似,不同的是,前者是將其包含的項“隱藏(yncng)”起來(后者是全部顯示),通過點擊

47、下拉按鈕來選擇所需的項(只能選一項),被選中的項將在文本框中顯示出來 第48頁/共103頁第四十九頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件4 ListView控件(1)重要屬性Items.Count屬性和SelectedItems.Count屬性屬性Items.Count返回ListView控件所包含的項的總數(shù);屬性SelectedItems.Count則返回ListView控件中已被選中的項的個數(shù)。Itemsi屬性該屬性返回ListView控件中索引為i的項,如果(rgu)要返回項的標題,則用Itemsi.Text屬性。例如,如果要訪問List

48、View控件中所有的項,則可以用下列代碼實現(xiàn):for (int i = 0; i listView1.Items.Count; i+) string s = listView1.Itemsi.Text;第49頁/共103頁第五十頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件SelectedItemsi屬性該屬性返回在被選中的項中索引(suyn)為i的項。它一般與SelectedItems.Count屬性搭配使用。例如,下列代碼的作用是在ListBox1控件中列出listView1控件中所有已被選中的項(的Text值)for (int i = 0; i

49、listView1.SelectedItems.Count; i+) string s = listView1.SelectedItemsi.Text + -已-被選中; /項被選中 listBox1.Items.Add(s); 第50頁/共103頁第五十一頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件MultiSelect屬性當該屬性被設(shè)置為true(默認值)時,允許在ListView控件中選擇多項。選擇方法(fngf)是,按【Ctrl】的同時用鼠標點擊要選的項。CheckBoxes屬性當該屬性被設(shè)置為true(默認值為false)時,在每項的前面會

50、增加一個復(fù)選框。Itemsi.Checked屬性 如果索引為i的項的復(fù)選框被選中,則該屬性返回true;反之如果令I(lǐng)temsi.Checked的值為true,則索引為i的項的復(fù)選框被選中。第51頁/共103頁第五十二頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件(2)重要方法Items.Add()方法該方法用于在ListView控件中添加項,它有多個(du )重載版本,常用有兩種:ListViewItem Items.Add(string text)ListViewItem Items.Add(string text, int imageIndex)其

51、中,參數(shù)text用于設(shè)置項的Text屬性值,imageIndex用于設(shè)置項的圖標。Items.Clear()方法該方法用于清空ListView控件中所有的項。Itemsi.Remove()方法該方法用于刪除索引為i的項。第52頁/共103頁第五十三頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件(3)重要事件Click事件只要(zhyo)點擊ListView控件中的任意一項,都會觸發(fā)該事件。SelectedIndexChanged事件ListView控件中任意一項的選中狀態(tài)發(fā)生變化時都會觸發(fā)該事件,但項前的復(fù)選框的選中狀態(tài)發(fā)生變化時不會觸發(fā)該事件。Ite

52、mCheck和ItemChecked事件這兩個事件十分相似:項的復(fù)選框的狀態(tài)發(fā)生改變時都會觸發(fā)該這兩個事件。其區(qū)別主要體現(xiàn)在,它們的事件處理函數(shù)的參數(shù)e返回的值不一樣。其中,對于ItemCheck事件,e.Item返回的是復(fù)選框狀態(tài)被改變的項;對于ItemChecked事件,e.CurrentValue返回的是在狀態(tài)改變之前項的復(fù)選框的值(Checked或Unchecked),e.NewValue返回的是在狀態(tài)改變之后項的復(fù)選框的值。第53頁/共103頁第五十四頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件5 TreeView控件TreeView控件是

53、以樹狀的形式顯示其包含的項。例如,Windows操作系統(tǒng)中的資源管理器就是以樹狀的形式展示目錄。(1)TreeView控件的重要屬性(shxng)和方法ImageList屬性(shxng)該屬性(shxng)用于加載ImageList控件對象,以為TreeView控件中的節(jié)點提供圖標。Nodes.Count屬性(shxng)該屬性(shxng)返回TreeView控件中根節(jié)點的數(shù)量。Nodesi屬性(shxng) 該屬性(shxng)返回TreeView控件中索引為i的根節(jié)點。Parent屬性(shxng)該屬性(shxng)返回TreeView控件所在的容器對象,如Form1等。第54頁/共

54、103頁第五十五頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件TopNode屬性該屬性返回TreeView控件中的第一個根節(jié)點(索引為0的根節(jié)點)。如果TreeView控件中沒有節(jié)點,則返回null。CheckBoxes屬性當該屬性的值被設(shè)置(shzh)為true時,在每個節(jié)點前面都增加一個復(fù)選框。Nodes.Clear()方法該方法用于清空TreeView控件中的所有節(jié)點,如:treeView1.Nodes.Clear();第55頁/共103頁第五十六頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件(2)Tre

55、eNode類的重要方法和屬性TreeNode類的構(gòu)造函數(shù)TreeView控件中的節(jié)點實際上是由TreeNode類的對象構(gòu)成。TreeNode類提供了重載構(gòu)造函數(shù)的多種版本,用于創(chuàng)建TreeNode類的對象(節(jié)點)。其中,常用的包括兩種:TreeNode TreeNode(string text)TreeNode TreeNode(string text, int imageIndex, int selectedImageIndex)其中,參數(shù)text用于設(shè)置節(jié)點的名稱(Text屬性值);imageIndex和selectedImageIndex分別用于設(shè)置節(jié)點未被選中和已被選中時要顯示的圖標的

56、索引(此索引與圖標的對應(yīng)關(guān)系在ImageList控件設(shè)置),如果只能(zh nn)這兩個參數(shù),則默認均使用索引為0的圖標。第56頁/共103頁第五十七頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件(2)TreeNode類的重要方法和屬性TreeNode類的構(gòu)造函數(shù)TreeView控件中的節(jié)點實際上是由TreeNode類的對象構(gòu)成。TreeNode類提供了重載構(gòu)造函數(shù)的多種版本,用于創(chuàng)建TreeNode類的對象(節(jié)點)。其中(qzhng),常用的包括兩種:TreeNode TreeNode(string text)TreeNode TreeNode(st

57、ring text, int imageIndex, int selectedImageIndex)例如,下面代碼將創(chuàng)建名為“中國大學(xué)”的節(jié)點,并添加為控件treeView1的一個根節(jié)點:TreeNode node = new TreeNode(中國大學(xué)); treeView1.Nodes.Add(node);第57頁/共103頁第五十八頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件Nodes.Add()方法(fngf)該方法(fngf)用于為當前節(jié)點增加子節(jié)點。例如:TreeNode node, parentnode;node = new TreeN

58、ode(中國大學(xué));treeView1.Nodes.Add(node); /在treeView1控件中增加根節(jié)點“中國大學(xué)”parentnode = node;node = new TreeNode(清華大學(xué));parentnode.Nodes.Add(node); /為“中國大學(xué)”增加子節(jié)點“清華大學(xué)”node = new TreeNode(北京大學(xué));parentnode.Nodes.Add(node);/為“中國大學(xué)”增加子節(jié)點“北京大學(xué) 第58頁/共103頁第五十九頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件Expand()和ExpandAl

59、l()方法這兩個方法都是用于展開節(jié)點,不同(b tn)的是,Expand()方法用于展開當前節(jié)點的所有子節(jié)點,而不展開孫子節(jié)點(即子節(jié)點以下的節(jié)點不展開);而ExpandAll()方法則展開所有以當前節(jié)點為根節(jié)點的所有節(jié)點(包括子節(jié)點和孫子節(jié)點)。Collapse()方法該方法則收縮以當前節(jié)點為根節(jié)點的子樹(變?yōu)橐粋€節(jié)點)。Remove()方法該方法用于刪除當前節(jié)點及其子節(jié)點和孫子節(jié)點。GetNodeCount(bool includeSubTree)方法該方法返回子節(jié)點和孫子節(jié)點的個數(shù),其中,如果參數(shù)includeSubTree的值為true則返回當前節(jié)點的子節(jié)點以及所有孫子節(jié)點的數(shù)量;如果

60、為false則僅返回子節(jié)點的數(shù)量。第59頁/共103頁第六十頁,共104頁。6.3.3 列表(li bio)類控件6.3 常用(chn yn)的控件下面介紹TreeNode類的常用屬性。Text屬性該屬性用于設(shè)置或獲取節(jié)點所顯示(xinsh)的文本。Nodesi屬性該屬性返回當前節(jié)點的子節(jié)點中索引為i的子節(jié)點。Checked屬性當節(jié)點前面的復(fù)選框被選中時,該屬性值為true;反之,當令該屬性值為true時,相應(yīng)節(jié)點前面的復(fù)選框處于被選中狀態(tài)(打勾)。FullPath屬性該屬性返回從根節(jié)點到當前節(jié)點的路徑。 Parent屬性該屬性返回父節(jié)點。第60頁/共103頁第六十一頁,共104頁。6.3.3 列表(li bio)

溫馨提示

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

評論

0/150

提交評論