C#窗體控件-文本框控件TextBox


在希望用戶輸入程序員在設計階段不知道的文本(如用戶的姓名)時,應使用文本框。文本框的主要用途是讓用戶輸入文本,用戶可以輸入任何字符,也可以限制用戶只輸入數值。

文本框(TextBox)的作用是實現程序與用戶的交互,獲取用戶輸入的信息或者向用戶顯示文本。

文件框的屬性和事件

CharacterCasing:確定文本框中的大小寫設置。
ScrollBars:指定文本框內容比較多時,是否顯示滾動條。
MaxLength:指定文本框中輸入的最大字符數。
Multiline:表示是否可在文本框中輸入多行文本。
PasswordChar:作為密碼框時,文本框中顯示的字符。
ReadOnly:設置文本框是否只讀。
Text:與文本框相關頭聯的文本。

KeyPress:文本框內,按任意鍵時觸發的事件。
TextChanged:文本框內容發生改變觸發的事件。

TextBox提供了3種樣式的輸入:單行、多行和密碼。輸入內容比較多時,設置Multiline屬性為True,可以調整TextBox的寬度,實現多行輸入。如果文本框的內容比較保密,設置PasswordChar屬性為“*”,輸入的內容就會以“*”顯示。

TextBox控件的屬性

名   稱

描    述

CausesValidation

當控件的這個屬性設置為true,且該控件
獲得了焦點時,會引發兩個事件:
Validating 和 Validated。可以處理這
些事件,以便驗證失去焦點的控件中
數據的有效性。
這可能使控件永遠都不能獲得焦點。
下面會討論相關的事件

CharacterCasing

這個值表示TextBox是否會改變輸入的
文本的大小寫。可能的值有:

●Lower: 文本框中輸入的所有文本都轉換為小寫

●Normal: 不對文本進行任何轉換

●Upper: 文本框中輸入的所有文本都轉換為大寫

MaxLength

這個值指定輸入到TextBox中的文本的最
大字符長度。把這個值設置為0,表示
最大字符長度僅受限於可用的內存

Multiline

表示該控件是否是一個多行控件。多行控件
可以顯示多行文本。如果Multiline屬性設
置為true,通常也把WordWrap也設置為true

PasswordChar

指定是否用密碼字符替換在單行文本框中
輸入的字符。如果Multiline 屬性為true,
這個屬性就不起作用

ReadOnly

這個Boolean值表示文本是否為只讀

ScrollBars

指定多行文本框是否顯示滾動條

SelectedText

在文本框中選擇的文本

SelectionLength

在文本中選擇的字符數。如果這個值設置得
比文本中的總字符數大,則控件會把它重
新設置為字符總數減
去SelectionStart 的值

SelectionStart

文本框中被選中文本的開頭

WordWrap

指定在多行文本框中,如果一行的寬度超出
了控件的寬度,其文本是否應自動換行

 

 

TextBox控件的事件(所有的事件都派生於Control)

名    稱

描    述

Enter

Leave

Validating

Validated

這4個事件按照列出的順序引發。它們統稱
為“焦點事件”,當控件的焦點發生改變時
引發,但有兩個例外。Validating 和 Validated
僅在控件接收了焦點,且其CausesValidation屬
性設置為true時引發。接收焦點的控件引發事件
的原因是有時即使焦點改變了,我們也不希望驗
證控件的有效性。它的一個示例是用戶單
擊了Help按鈕

KeyDown

KeyPress

KeyUp

這3個事件稱為“鍵事件”。它們可以監視和
改變輸入到控件中的內容

KeyDown 和 KeyUp接收與所按下鍵對應的
鍵碼,這樣就可以確定是否按下了特殊的鍵
Shift 或 Control 和F1

另一方面,KeyPress接收與鍵對應的字符。
這表示字母a的值與字母A的值不同。如果
要排除某個范圍內的字符,例如只允許輸
入數值,這是很有用的

TextChange

只要文本框中的文本發生了改變,無論發生
什么改變,都會引發該事件

 

 

1、主要屬性:
(1)Text屬性:Text屬性是文本框最重要的屬性,因為要顯示的文本就包含在Text屬性中。默認情況下,
最多可在一個文本框中輸入2048個字符。如果將MultiLine屬性設置為true,則最多可輸入32KB 的文本。
Text屬性可以在設計時使用【屬性】窗口設置,也可以在運行時用代碼設置或者通過用戶輸入來設置。可
以在運行時通過讀取Text屬性來獲得文本框的當前內容。
(2)MaxLength 屬性:用來設置文本框允許輸入字符的最大長度,該屬性值為 0 時,不限制輸入的字符
數。
(3)MultiLine 屬性:用來設置文本框中的文本是否可以輸入多行並以多行顯示。值為 true 時,允許多行
顯示。值為false時不允許多行顯示,一旦文本超過文本框寬度時,超過部分不顯示。
(4)HideSelection屬性:用來決定當焦點離開文本框后,選中的文本是否還以選中的方式顯示,值為true,
則不以選中的方式顯示,值為 false將依舊以選中的方式顯示。
(5)ReadOnly屬性:用來獲取或設置一個值,該值指示文本框中的文本是否為只讀。值為 true時為只讀,
值為 false時可讀可寫。
(6)PasswordChar 屬性:是一個字符串類型,允許設置一個字符,運行程序時,將輸入到 Text 的內容全
部顯示為該屬性值,從而起到保密作用,通常用來輸入口令或密碼。
(7) ScrollBars屬性: 用來設置滾動條模式, 有四種選擇: ScrollBars.None (無滾動條), ScrollBars.Horizontal
(水平滾動條),ScrollBars.Vertical(垂直滾動條),ScrollBars.Both(水平和垂直滾動條)。
注意:只有當MultiLine屬性為true時,該屬性值才有效。在WordWrap屬性值為true時,
水平滾動條將不起作用
(8)SelectionLength屬性:用來獲取或設置文本框中選定的字符數。只能在代碼中使用,值為0 時,表示
未選中任何字符。
(9)SelectionStart屬性:用來獲取或設置文本框中選定的文本起始點。只能在代碼中使用,第一個字符的
位置為0,第二個字符的位置為1,依此類推。
(10)SelectedText 屬性:用來獲取或設置一個字符串,該字符串指示控件中當前選定的文本。只能在代
碼中使用。
(11)Lines:該屬性是一個數組屬性,用來獲取或設置文本框控件中的文本行。即文本框中的每一行存放
在 Lines數組的一個元素中。
(12)Modified:用來獲取或設置一個值,該值指示自創建文本框控件或上次設置該控件的內容后,用戶
是否修改了該控件的內容。值為true表示修改過,值為 false表示沒有修改過。
(13)TextLength屬性:用來獲取控件中文本的長度。
(14)WordWrap:用來指示多行文本框控件在輸入的字符超過一行寬度時是否自動換行到下一行的開始,
值為 true,表示自動換到下一行的開始,值為false表示不自動換到下一行的開始。
2、常用方法:
(1)AppendText方法:把一個字符串添加到文件框中文本的后面,調用的一般格式如下:
文本框對象.AppendText(str)
參數 str是要添加的字符串。
(2)Clear方法:從文本框控件中清除所有文本。調用的一般格式如下:
文本框對象.Clear()該方法無參數。
(3)Focus方法:是為文本框設置焦點。如果焦點設置成功,值為 true,否則為false。調用的一般格式如
下: 文本框對象.Focus()該方法無參數。  
(4)Copy方法:將文本框中的當前選定內容復制到剪貼板上。調用的一般格式如下:
文本框對象.Copy()該方法無參數。
(5)Cut方法:將文本框中的當前選定內容移動到剪貼板上。調用的一般格式如下:
文本框對象.Cut()該方法無參數。
(6)Paste方法:用剪貼板的內容替換文本框中的當前選定內容。調用的一般格式如下:
文本框對象.Paste()該方法無參數。
(7)Undo 方法:撤銷文本框中的上一個編輯操作。調用的一般格式如下:
文本框對象.Undo()該方法無參數。
(8)ClearUndo方法:從該文本框的撤銷緩沖區中清除關於最近操作的信息,根據應用
程序的狀態,可以使用此方法防止重復執行撤銷操作。調用的一般格式如下:
文本框對象.ClearUndo()該方法無參數。
(9)Select方法:用來在文本框中設置選定文本。調用的一般格式如下:
文本框對象.Select(start,length)
該方法有兩個參數,第一個參數start用來設定文本框中當前選定文本的第一個字符的位
置,第二個參數length用來設定要選擇的字符數。
(10)SelectAll方法:用來選定文本框中的所有文本。調用的一般格式如下:
文本框對象.SelectAll()該方法無參數。
3、常用事件:
(1)GotFocus事件:該事件在文本框接收焦點時發生。
(2)LostFocus事件:該事件在文本框失去焦點時發生。
(3)TextChanged事件:該事件在Text屬性值更改時發生。無論是通過編程修改還是用戶交互更改文本框
的 Text屬性值,均會引發此事件。

實例1:簡單計算

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Single txt1, txt2;
            txt1 = Convert.ToSingle(textBox1.Text);
            txt2 = Convert.ToSingle(textBox2.Text);
            textBox3.Text = Convert.ToString(txt1 * txt2);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }

實例2:TextBox應用

//追加文本
        private void button1_Click(object sender, EventArgs e)
        {
            textBox3.AppendText("追加的文本");
        }
        //清空
        private void button2_Click(object sender, EventArgs e)
        {
            textBox3.Clear();
            textBox3.Focus();
        }
        //全選
        private void button3_Click(object sender, EventArgs e)
        {
            textBox3.SelectAll();
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM