TextBox組件(文本框組件)是一種常用的 也是比較容易掌握的組件 應(yīng)用程序主要使用它來(lái)接收使用者于輸入文字信息 在前面內(nèi)容中已經(jīng)或多或少的接觸到TextBox組件 本節(jié)就來(lái)詳細(xì)探討一下Visual 中TextBox組件的使用方法 一 TextBox組件 TextBox類(lèi) 當(dāng)我們使用Visual Basic Net集成開(kāi)發(fā)環(huán)境開(kāi)發(fā)應(yīng)用程序時(shí) 在從【工具箱】的【W(wǎng)indows窗體】選項(xiàng)卡中向Form 的設(shè)計(jì)窗體拖入一個(gè)TextBox組件的后 我們可能并沒(méi)有感覺(jué)到即使時(shí)這樣一個(gè)簡(jiǎn)單的操作 Visual Basic Net都做了很多幕后工作 主要工作和步驟如下 首先實(shí)例化System Windows Forms TextBox類(lèi) 并根據(jù)拖動(dòng)到窗體的位置和形狀分別設(shè)定TextBox實(shí)例的各個(gè)屬性 我們看到的設(shè)計(jì)窗體 其實(shí)是Form 類(lèi)的一個(gè)實(shí)例 而Form 類(lèi)首先是從System Windows Forms Form類(lèi)繼承而來(lái) Form 類(lèi)中的成員根據(jù)使用者往窗體中拖入的組件不同而不同 各個(gè)成員通過(guò)Add或AddRange方法加入到Form 中 這樣拖入的組件才能夠顯示在設(shè)計(jì)窗體上 以上這些都完全不同于以前Visual Basic 通過(guò)上述步驟 我們不難得到TextBox組件和TextBox類(lèi)之間的關(guān)系 TextBox組件是命名空間System Windows Forms中的TextBox類(lèi)的實(shí)例 在從【工具箱】的【W(wǎng)indows窗體】選項(xiàng)卡中拖入窗體的任一組件 都是 Net框架類(lèi)庫(kù)—— Net Framework SDK中封裝的某一個(gè)類(lèi)的實(shí)例 通過(guò)上述步驟也不難看出 Visual Basic Net的確才是真正的面向?qū)ο螅∣OP)的開(kāi)發(fā)語(yǔ)言 二 TextBox類(lèi)的成員 TextBox組件使用雖然比較簡(jiǎn)單 但TextBox類(lèi)的構(gòu)成成員卻是非常的豐富 在一般性的編程中 主要涉及到三類(lèi) 屬性 方法和事件 表 表 和表 分別是TextBox類(lèi)的常用屬性 方法和事件及其簡(jiǎn)單說(shuō)明 屬性 說(shuō)明 AcceptsReturn 指示在多行TextBox組件中按ENTER鍵時(shí) 是在組件中創(chuàng)建一行新文本還是激活窗體的默認(rèn)按鈕 AcceptsTab 該值指示在多行文本框組件中按TAB鍵時(shí) 是否在組件中鍵入一個(gè)TAB字符 而不是按選項(xiàng)卡的順序?qū)⒔裹c(diǎn)移動(dòng)到下一個(gè)組件 AllowDrop 獲取或設(shè)置一個(gè)值 該值指示組件是否可以接受用戶(hù)拖放到它上面的數(shù)據(jù) Anchor 獲取或設(shè)置組件的哪些邊緣錨定到其容器邊緣 BackColor 獲取或設(shè)置組件的背景色 BackgroundImage 獲取或設(shè)置在組件中顯示的背景圖像 BorderStyle 獲取或設(shè)置文本框組件的邊框類(lèi)型 Bottom 獲取組件的下邊緣與其容器的工作區(qū)的上邊緣之間的距離 CanFocus 獲取一個(gè)值 該值指示組件是否可以接收焦點(diǎn) CanSelect 獲取一個(gè)值 該值指示是否可以選中組件 CanUndo 獲取一個(gè)值 該值指示用戶(hù)在文本框組件中能否撤消前一操作 CharacterCasing 獲取或設(shè)置TextBox組件是否在字符鍵入時(shí)修改其大小寫(xiě)格式 ContextMenu 獲取或設(shè)置與組件關(guān)聯(lián)的快捷菜單 Reated 獲取一個(gè)值 該值指示組件是否已經(jīng)創(chuàng)建 Cursor 獲取或設(shè)置當(dāng)鼠標(biāo)指針位于組件上時(shí)顯示的光標(biāo) DataBindings 為該組件獲取數(shù)據(jù)綁定 Dock 獲取或設(shè)置組件??康礁溉萜鞯哪囊粋€(gè)邊緣 Enabled 獲取或設(shè)置一個(gè)值 該值指示組件是否可以對(duì)用戶(hù)交互作出響應(yīng) Focused 獲取一個(gè)值 該值指示組件是否有輸入焦點(diǎn) Font 獲取或設(shè)置組件顯示的文字的字體 ForeColor 獲取或設(shè)置組件的前景色 MaxLength 獲取或設(shè)置用戶(hù)可以在文本框組件中最多鍵入的字符數(shù) Multiline TRUE/FALSE 該值指示它是否為多行文本框組件 PasswordChar 獲取或設(shè)置字符 該字符用于屏蔽單行 ScrollBars 獲取或設(shè)置哪些滾動(dòng)條應(yīng)出現(xiàn)在多行TextBox 組件中 Text 獲取或設(shè)置文本框中的當(dāng)前文本 TextAlign 設(shè)置文本框內(nèi)文本得對(duì)齊方式 TextLength 獲取組件中文本的長(zhǎng)度 表 TextBox類(lèi)的常用屬性及其說(shuō)明 方法 說(shuō)明 AppendText 向文本框的當(dāng)前文本追加文本 Clear 從文本框控件中清除所有文本 ClearUndo 從該文本框的撤消緩沖區(qū)中清除關(guān)于最近操作的信息 Copy 將文本框中的當(dāng)前選定內(nèi)容復(fù)制到剪貼板 Cut 將文本框中的當(dāng)前選定內(nèi)容移動(dòng)到剪貼板中 DoDragDrop 開(kāi)始拖放操作 Focus 為控件設(shè)置輸入焦點(diǎn) GetChildAtPoint 檢索位于指定坐標(biāo)處的子控件 GetNextControl 按照子控件的Tab鍵順序向前或向后檢索下一個(gè)控件 Hide 對(duì)用戶(hù)隱藏控件 Paste 用剪貼板的內(nèi)容替換文本框中的當(dāng)前選定內(nèi)容 PointToClient 將指定屏幕點(diǎn)的位置計(jì)算成工作區(qū)坐標(biāo) PointToScreen 將指定工作區(qū)點(diǎn)的位置計(jì)算成屏幕坐標(biāo) ResetBindings 將DataBindings屬性重置為其默認(rèn)值 Select 選擇控件中的文本 SelectAll 選定文本框中的所有文本 SelectNextControl 激活下一個(gè)控件 Show 向用戶(hù)顯示控件 SuspendLayout 臨時(shí)掛起控件的布局邏輯 Undo 撤消文本框中的上一個(gè)編輯操作
創(chuàng)新互聯(lián)公司專(zhuān)業(yè)為企業(yè)提供奎屯網(wǎng)站建設(shè)、奎屯做網(wǎng)站、奎屯網(wǎng)站設(shè)計(jì)、奎屯網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、奎屯企業(yè)網(wǎng)站模板建站服務(wù),10余年奎屯做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
表 TextBox類(lèi)的常用方法及其說(shuō)明
事件 說(shuō)明 Click 在單擊文本框時(shí)發(fā)生 CursorChanged 當(dāng) Cursor 屬性的值更改時(shí)發(fā)生 DoubleClick 在雙擊控件時(shí)發(fā)生 DragDrop 在完成拖放操作時(shí)發(fā)生 DragEnter 在將對(duì)象拖入控件的邊界時(shí)發(fā)生 DragLeave 在將對(duì)象拖出控件的邊界時(shí)發(fā)生 DragOver 在將對(duì)象拖到控件的邊界上發(fā)生 EnabledChanged Enabled 屬性值更改后發(fā)生 Enter 進(jìn)入控件時(shí)發(fā)生 GiveFeedback 在執(zhí)行拖動(dòng)操作期間發(fā)生 GotFocus 在控件接收焦點(diǎn)時(shí)發(fā)生 KeyDown 在控件有焦點(diǎn)的情況下按下鍵時(shí)發(fā)生 KeyPress 在控件有焦點(diǎn)的情況下按下鍵時(shí)發(fā)生 KeyUp 在控件有焦點(diǎn)的情況下釋放鍵時(shí)發(fā)生 Leave 在輸入焦點(diǎn)離開(kāi)控件時(shí)發(fā)生 LostFocus 當(dāng)控件失去焦點(diǎn)時(shí)發(fā)生 MouseDown 當(dāng)鼠標(biāo)指針位于控件上并按下鼠標(biāo)鍵時(shí)發(fā)生 MouseEnter 在鼠標(biāo)指針進(jìn)入控件時(shí)發(fā)生 MouseHover 在鼠標(biāo)指針懸停在控件上時(shí)發(fā)生 MouseLeave 在鼠標(biāo)指針離開(kāi)控件時(shí)發(fā)生 MouseMove 在鼠標(biāo)指針移到控件上時(shí)發(fā)生 MouseUp 在鼠標(biāo)指針在控件上并釋放鼠標(biāo)鍵時(shí)發(fā)生 MouseWheel 在移動(dòng)鼠標(biāo)輪并且控件有焦點(diǎn)時(shí)發(fā)生 Move 在移動(dòng)控件時(shí)發(fā)生 Paint 在重繪控件時(shí)發(fā)生 Resize 在調(diào)整控件大小時(shí)發(fā)生
TextBox類(lèi)的常用事件及其說(shuō)明當(dāng)然TextBox類(lèi)除了上述的屬性 方法和事件 還有很多屬性 方法和事件 和很多受保護(hù)的方法和受保護(hù)的屬性 由于它們使用的幾率較少和篇幅所限 就不能一一介紹了 感興趣的朋友可以參閱相關(guān)資料
三.掌握TextBox組件的基本用法 由于TextBox類(lèi)的成員實(shí)在太豐富 一個(gè)示例要想介紹上述所有的方法 屬性和事件是不可能 在下面介紹的示例中 將突出介紹在Visual 集成開(kāi)發(fā)環(huán)境下通過(guò)對(duì)設(shè)定不同的屬性值實(shí)現(xiàn)三種常見(jiàn)的TextBox組件式樣 以及TextBox組件的方法的調(diào)用方法和在Visual Basic Net集成開(kāi)發(fā)環(huán)境中如何加入TextBox組件不同事件對(duì)應(yīng)的處理代碼 讓各位更加熟悉TextBox類(lèi)和Visual Basic Net開(kāi)發(fā)環(huán)境 下面是TextBox示例的具體實(shí)現(xiàn)步驟 啟動(dòng)Visual Studio Net 選擇菜單【文件】|【新建】|【項(xiàng)目】后 彈出【新建項(xiàng)目】對(duì)話框 將【項(xiàng)目類(lèi)型】設(shè)置為【Visual Basic項(xiàng)目】 將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】 在【名稱(chēng)】文本框中輸入【TextBox組件】 在【位置】的文本框中輸入【E:\項(xiàng)目】 然后單擊【確定】按鈕 這樣在 E:\VS NET項(xiàng)目 目錄中就產(chǎn)生了名稱(chēng)為 TextBox組件 的文件夾 并在里面創(chuàng)建了名稱(chēng)為 TextBox組件 的項(xiàng)目文件 把Visual Studio Net的當(dāng)前窗口切換到【Form VB(設(shè)計(jì))】窗口 并從【工具箱】中的【W(wǎng)indows窗體組件】選項(xiàng)卡中往Form 窗體中拖入下列組件 并執(zhí)行相應(yīng)操作 三個(gè)Label組件 三個(gè)TextBox組件 分別為T(mén)extBox TextBox 和TextBox 按照表 中數(shù)值來(lái)設(shè)定設(shè)定組件的主要屬性 請(qǐng)注意TextBox組件中的屬性設(shè)定值
表 【TextBox組件】項(xiàng)目窗體中各組件的主要屬性設(shè)定數(shù)值表
按照表 各值設(shè)定后的TextBox組件三種常用的式樣也就產(chǎn)生了 具體如圖 所示
圖 程序設(shè)計(jì)時(shí)TextBox組件三種常見(jiàn)使用方法
這三種式樣就是單行的TextBox組件 多行的TextBox組件和用以輸入類(lèi)似密碼數(shù)據(jù)的TextBox組件 為T(mén)extBox 組件添加事件和事件的處理代碼 此次添加的事件的名稱(chēng)是Leave 當(dāng)TextBox 組件失去焦點(diǎn)時(shí)觸發(fā)此事件 添加TextBox 組件的其他事件也可仿照下面的處理方法 下面是利用Visual Basic Net在【TextBox組件】項(xiàng)目中添加TextBox 組件的Leave事件和添加Leave事件的處理代碼的具體步驟 首先把Visual Basic Net的當(dāng)前窗口切換到Form vb的代碼編輯界面 然后在如圖 所示的選擇框中選擇TextBox
圖 選擇TextBox組件
之后 在圖 所示的選擇框中選擇 Leave
圖 選取Leave事件
在選擇 Leave 之后 Visual Basic Net會(huì)自動(dòng)在Form vb中產(chǎn)生TextBox 的Leave事件 在Leave事件的事件處理代碼區(qū)添加下列代碼 下面代碼調(diào)用了TextBox 組件的 Clear 方法并且顯示一個(gè)TextBox 組件失去焦點(diǎn)的提示框
TextBox Clear ( ) 清除TextBox 組件的顯示內(nèi)容MsgBox ( 失去焦點(diǎn)! ) 彈出提示框
至此【TextBox組件】項(xiàng)目的全部工作就完成了 圖 是程序編譯后運(yùn)行界面
圖 【TextBox項(xiàng)目】的運(yùn)行界面
lishixinzhi/Article/program/net/201311/12721
Dim Str(20) As String '20數(shù)據(jù)元素
Dim Text(20) As TextBox
Dim n As Integer = 0
For Each i In Text
i = New TextBox '實(shí)例化
i.Location = New Point(50, n * 20)
Me.Controls.Add(i) '添加窗體
Dim Index As Integer = i.TabIndex '沒(méi)index屬性
Str(n) = Index
i.Text = Str(n) 'str數(shù)組值賦值給文本框
n += 1
Next
Imports?System.Text
Imports?System.Windows
Imports?System.Windows.Forms
Public?Class?Netin?'類(lèi)?名
'Inherits?Forms.Form
Public?Shared?Netin?As?New?Form
Public?components?As?ComponentModel.IContainer
Protected?Overrides?Sub?Finalize()
MyBase.Finalize()
End?Sub???
DebuggerStepThrough()
Public?Sub?InitializeComponent()
Me.components?=?New?ComponentModel.Container()
Dim?resources?As?ComponentModel.ComponentResourceManager?=?New?System.ComponentModel.ComponentResourceManager(GetType(bjt))
Me.TextBox1?=?New?TextBox(Me.components)
Me.Button1?=?New?Button(Me.components)
'For?…?Next??
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.Button1)
Me.m?=?New?ContextMenuStrip(Me.components)
Me.m1.Text?=?"菜單項(xiàng)1"?????
'設(shè)置并添加相關(guān)控件,(窗體)Netin?初始化。
End?Sub
Private?Sub?Form_Load(sender?As?Object,?e?As?EventArgs)?Handles?Me.Load
'加載后顯示窗體Netin。
End?Sub
Public?Sub?ObjClick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click,Button2.Click,Button3.Click,TextBox1.Click?
MessageBox.Show("你按了鼠標(biāo)")
End?Sub
Public?WithEvents?TextBox1?As?TextBox
Public?WithEvents?Button1?As?Button
Public?WithEvents?Button2?As?Button
Public?WithEvents?Button3?As?Button
Friend?WithEvents?m?As?ContextMenuStrip
Friend?WithEvents?m1?As?ToolStripMenuItem
End?Class
Class?MainWindow
Netin.Show()
Netin.Button2.Text?=?"Main"
……
可以實(shí)現(xiàn)
首先創(chuàng)建一個(gè)Button類(lèi)型控件數(shù)組:
1、創(chuàng)建“Windows應(yīng)用程序”類(lèi)型的工程,添加名為ButtonArray的類(lèi),并使該類(lèi)繼承 System.Collection.CollectionBase 類(lèi)。System.Collections.CollectionBase類(lèi)是.NET框架類(lèi)庫(kù)中為集合操作提供抽象的基類(lèi),通過(guò)對(duì)它的繼承可以為我們的ButtonArray類(lèi)具備集合增加、刪除、索引的功能。
2、為ButtonArray類(lèi)添加ParentForm屬性,即控件組所在窗體,創(chuàng)建初始化函數(shù)(構(gòu)造函數(shù));
3、為控件數(shù)組類(lèi)增加AddItem方法,該方法在控件數(shù)組類(lèi)中添加成員;
4、為控件數(shù)組類(lèi)增加RemoveItem方法,該方法在控件數(shù)組中刪除一個(gè)成員。
示例代碼:
Public Class ButtonArray
Inherits System.Collections.CollectionBase
Private ReadOnly ParentForm As System.Windows.Forms.Form
Public Sub New(ByVal pForm As System.Windows.Forms.Form)
ParentForm = pForm
End Sub
Default Public ReadOnly Property Item(ByVal index As Integer) As System.Windows.Forms.Button
Get
Return Me.List.Item(index) ' ButtonArray的List 屬性從CollectionBase 繼承
End Get
End Property
Public Sub AddItem()
Dim btnItem As New System.Windows.Forms.Button
Me.List.Add(btnItem)
ParentForm.Controls.Add(btnItem) '向窗體中增加控件
btnItem.Tag = Me.Count 'Count屬性從CollectionBase 繼承
btnItem.Top = Me.Count * 30
btnItem.Left = 200
btnItem.Text = "Button" Me.Count.ToString
AddHandler btnItem.Click, AddressOf btnItem_Click '綁定事件處理程序
End Sub
Public Sub AddItem(ByVal btnItem As System.Windows.Forms.Button)
Me.List.Add(btnItem)
AddHandler btnItem.Click, AddressOf btnItem_Click '綁定事件處理程序
End Sub
Public Sub RemoveItem()
If Me.Count 0 Then
ParentForm.Controls.Remove(Me(Me.Count - 1))
Me.List.RemoveAt(Me.Count - 1)
End If
End Sub
Public Sub btnItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)
'在這里編寫(xiě)控件數(shù)組對(duì)點(diǎn)擊事件的響應(yīng)
'例如:
MsgBox("點(diǎn)擊:" sender.GetType().ToString CType(CType(sender, Button).Tag, String))
End Sub
End Class
使用創(chuàng)建的控件數(shù)組
在Form1中放置兩個(gè)按鈕Button1、Button2,分別測(cè)試控件數(shù)組的增添、刪除。
雙擊Form添加代碼:
Public Class Form1
Inherits System.Windows.Forms.Form
……Windows窗體設(shè)計(jì)器生成的代碼……
Dim Buttons As New ButtonArray(Me)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Buttons.AddItem()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Buttons.RemoveItem()
End Sub
End Class
其他的控件數(shù)組也可以用類(lèi)似的方式來(lái)實(shí)現(xiàn)
例如 Label控件數(shù)組
LabelArray.vb代碼如下:
Public Class LabelArray
Inherits System.Collections.CollectionBase
Private ReadOnly ParentForm As System.Windows.Forms.Form
Public Sub New(ByVal pForm As System.Windows.Forms.Form)
ParentForm = pForm
End Sub
Default Public ReadOnly Property Item(ByVal index As Integer) As System.Windows.Forms.Label
Get
Return Me.List.Item(index) ' ButtonArray的List 屬性從CollectionBase 繼承
End Get
End Property
Public Sub AddItem(ByVal btnItem As System.Windows.Forms.Label)
Me.List.Add(btnItem)
AddHandler btnItem.Click, AddressOf btnItem_Click '綁定事件處理程序
End Sub
Public Sub btnItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)
'在這里編寫(xiě)控件數(shù)組對(duì)點(diǎn)擊事件的響應(yīng)
'例如:
MsgBox("點(diǎn)擊:" sender.GetType().ToString CType(CType(sender, Label).Tag, String))
End Sub
End Class
使用創(chuàng)建的Label控件
在Form1中放置兩個(gè)按鈕Label1、Label2
雙擊Form添加代碼:
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows 窗體設(shè)計(jì)器生成的代碼 "
Public Sub New()
MyBase.New()
'該調(diào)用是 Windows 窗體設(shè)計(jì)器所必需的。
InitializeComponent()
'在 InitializeComponent() 調(diào)用之后添加任何初始化
'用來(lái)綁定label
BindArray()
End Sub
……Windows窗體設(shè)計(jì)器生成的其他代碼……
#End Region
Dim Labels As New LabelArray(Me)
Public Sub BindArray()
Me.Label1.Tag = "1111"
Me.Label2.Tag = "222"
Labels.AddItem(Me.Label1)
Labels.AddItem(Me.Label2)
End Sub
End Class
然后可以測(cè)試點(diǎn)擊兩個(gè)label可以顯示相應(yīng)的Tag的信息。
你這是控件數(shù)組?你這明明就是9個(gè)不同的 TextBox 控件啊,只不過(guò)名字長(zhǎng)得像而已。
文章名稱(chēng):vb.net控件組 vbnet winsock控件
本文網(wǎng)址:http://jinyejixie.com/article44/dosdhee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、電子商務(wù)、網(wǎng)站制作、Google、品牌網(wǎng)站制作、用戶(hù)體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)