TextBox組件(文本框組件)是一種常用的 也是比較容易掌握的組件 應(yīng)用程序主要使用它來接收使用者于輸入文字信息 在前面內(nèi)容中已經(jīng)或多或少的接觸到TextBox組件 本節(jié)就來詳細(xì)探討一下Visual 中TextBox組件的使用方法 一 TextBox組件 TextBox類 當(dāng)我們使用Visual Basic Net集成開發(fā)環(huán)境開發(fā)應(yīng)用程序時(shí) 在從【工具箱】的【W(wǎng)indows窗體】選項(xiàng)卡中向Form 的設(shè)計(jì)窗體拖入一個TextBox組件的后 我們可能并沒有感覺到即使時(shí)這樣一個簡單的操作 Visual Basic Net都做了很多幕后工作 主要工作和步驟如下 首先實(shí)例化System Windows Forms TextBox類 并根據(jù)拖動到窗體的位置和形狀分別設(shè)定TextBox實(shí)例的各個屬性 我們看到的設(shè)計(jì)窗體 其實(shí)是Form 類的一個實(shí)例 而Form 類首先是從System Windows Forms Form類繼承而來 Form 類中的成員根據(jù)使用者往窗體中拖入的組件不同而不同 各個成員通過Add或AddRange方法加入到Form 中 這樣拖入的組件才能夠顯示在設(shè)計(jì)窗體上 以上這些都完全不同于以前Visual Basic 通過上述步驟 我們不難得到TextBox組件和TextBox類之間的關(guān)系 TextBox組件是命名空間System Windows Forms中的TextBox類的實(shí)例 在從【工具箱】的【W(wǎng)indows窗體】選項(xiàng)卡中拖入窗體的任一組件 都是 Net框架類庫—— Net Framework SDK中封裝的某一個類的實(shí)例 通過上述步驟也不難看出 Visual Basic Net的確才是真正的面向?qū)ο螅∣OP)的開發(fā)語言 二 TextBox類的成員 TextBox組件使用雖然比較簡單 但TextBox類的構(gòu)成成員卻是非常的豐富 在一般性的編程中 主要涉及到三類 屬性 方法和事件 表 表 和表 分別是TextBox類的常用屬性 方法和事件及其簡單說明 屬性 說明 AcceptsReturn 指示在多行TextBox組件中按ENTER鍵時(shí) 是在組件中創(chuàng)建一行新文本還是激活窗體的默認(rèn)按鈕 AcceptsTab 該值指示在多行文本框組件中按TAB鍵時(shí) 是否在組件中鍵入一個TAB字符 而不是按選項(xiàng)卡的順序?qū)⒔裹c(diǎn)移動到下一個組件 AllowDrop 獲取或設(shè)置一個值 該值指示組件是否可以接受用戶拖放到它上面的數(shù)據(jù) Anchor 獲取或設(shè)置組件的哪些邊緣錨定到其容器邊緣 BackColor 獲取或設(shè)置組件的背景色 BackgroundImage 獲取或設(shè)置在組件中顯示的背景圖像 BorderStyle 獲取或設(shè)置文本框組件的邊框類型 Bottom 獲取組件的下邊緣與其容器的工作區(qū)的上邊緣之間的距離 CanFocus 獲取一個值 該值指示組件是否可以接收焦點(diǎn) CanSelect 獲取一個值 該值指示是否可以選中組件 CanUndo 獲取一個值 該值指示用戶在文本框組件中能否撤消前一操作 CharacterCasing 獲取或設(shè)置TextBox組件是否在字符鍵入時(shí)修改其大小寫格式 ContextMenu 獲取或設(shè)置與組件關(guān)聯(lián)的快捷菜單 Reated 獲取一個值 該值指示組件是否已經(jīng)創(chuàng)建 Cursor 獲取或設(shè)置當(dāng)鼠標(biāo)指針位于組件上時(shí)顯示的光標(biāo) DataBindings 為該組件獲取數(shù)據(jù)綁定 Dock 獲取或設(shè)置組件??康礁溉萜鞯哪囊粋€邊緣 Enabled 獲取或設(shè)置一個值 該值指示組件是否可以對用戶交互作出響應(yīng) Focused 獲取一個值 該值指示組件是否有輸入焦點(diǎn) Font 獲取或設(shè)置組件顯示的文字的字體 ForeColor 獲取或設(shè)置組件的前景色 MaxLength 獲取或設(shè)置用戶可以在文本框組件中最多鍵入的字符數(shù) Multiline TRUE/FALSE 該值指示它是否為多行文本框組件 PasswordChar 獲取或設(shè)置字符 該字符用于屏蔽單行 ScrollBars 獲取或設(shè)置哪些滾動條應(yīng)出現(xiàn)在多行TextBox 組件中 Text 獲取或設(shè)置文本框中的當(dāng)前文本 TextAlign 設(shè)置文本框內(nèi)文本得對齊方式 TextLength 獲取組件中文本的長度 表 TextBox類的常用屬性及其說明 方法 說明 AppendText 向文本框的當(dāng)前文本追加文本 Clear 從文本框控件中清除所有文本 ClearUndo 從該文本框的撤消緩沖區(qū)中清除關(guān)于最近操作的信息 Copy 將文本框中的當(dāng)前選定內(nèi)容復(fù)制到剪貼板 Cut 將文本框中的當(dāng)前選定內(nèi)容移動到剪貼板中 DoDragDrop 開始拖放操作 Focus 為控件設(shè)置輸入焦點(diǎn) GetChildAtPoint 檢索位于指定坐標(biāo)處的子控件 GetNextControl 按照子控件的Tab鍵順序向前或向后檢索下一個控件 Hide 對用戶隱藏控件 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 激活下一個控件 Show 向用戶顯示控件 SuspendLayout 臨時(shí)掛起控件的布局邏輯 Undo 撤消文本框中的上一個編輯操作
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),博州網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:博州等地區(qū)。博州做網(wǎng)站價(jià)格咨詢:028-86922220
表 TextBox類的常用方法及其說明
事件 說明 Click 在單擊文本框時(shí)發(fā)生 CursorChanged 當(dāng) Cursor 屬性的值更改時(shí)發(fā)生 DoubleClick 在雙擊控件時(shí)發(fā)生 DragDrop 在完成拖放操作時(shí)發(fā)生 DragEnter 在將對象拖入控件的邊界時(shí)發(fā)生 DragLeave 在將對象拖出控件的邊界時(shí)發(fā)生 DragOver 在將對象拖到控件的邊界上發(fā)生 EnabledChanged Enabled 屬性值更改后發(fā)生 Enter 進(jìn)入控件時(shí)發(fā)生 GiveFeedback 在執(zhí)行拖動操作期間發(fā)生 GotFocus 在控件接收焦點(diǎn)時(shí)發(fā)生 KeyDown 在控件有焦點(diǎn)的情況下按下鍵時(shí)發(fā)生 KeyPress 在控件有焦點(diǎn)的情況下按下鍵時(shí)發(fā)生 KeyUp 在控件有焦點(diǎn)的情況下釋放鍵時(shí)發(fā)生 Leave 在輸入焦點(diǎn)離開控件時(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)指針離開控件時(shí)發(fā)生 MouseMove 在鼠標(biāo)指針移到控件上時(shí)發(fā)生 MouseUp 在鼠標(biāo)指針在控件上并釋放鼠標(biāo)鍵時(shí)發(fā)生 MouseWheel 在移動鼠標(biāo)輪并且控件有焦點(diǎn)時(shí)發(fā)生 Move 在移動控件時(shí)發(fā)生 Paint 在重繪控件時(shí)發(fā)生 Resize 在調(diào)整控件大小時(shí)發(fā)生
TextBox類的常用事件及其說明當(dāng)然TextBox類除了上述的屬性 方法和事件 還有很多屬性 方法和事件 和很多受保護(hù)的方法和受保護(hù)的屬性 由于它們使用的幾率較少和篇幅所限 就不能一一介紹了 感興趣的朋友可以參閱相關(guān)資料
三.掌握TextBox組件的基本用法 由于TextBox類的成員實(shí)在太豐富 一個示例要想介紹上述所有的方法 屬性和事件是不可能 在下面介紹的示例中 將突出介紹在Visual 集成開發(fā)環(huán)境下通過對設(shè)定不同的屬性值實(shí)現(xiàn)三種常見的TextBox組件式樣 以及TextBox組件的方法的調(diào)用方法和在Visual Basic Net集成開發(fā)環(huán)境中如何加入TextBox組件不同事件對應(yīng)的處理代碼 讓各位更加熟悉TextBox類和Visual Basic Net開發(fā)環(huán)境 下面是TextBox示例的具體實(shí)現(xiàn)步驟 啟動Visual Studio Net 選擇菜單【文件】|【新建】|【項(xiàng)目】后 彈出【新建項(xiàng)目】對話框 將【項(xiàng)目類型】設(shè)置為【Visual Basic項(xiàng)目】 將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】 在【名稱】文本框中輸入【TextBox組件】 在【位置】的文本框中輸入【E:\項(xiàng)目】 然后單擊【確定】按鈕 這樣在 E:\VS NET項(xiàng)目 目錄中就產(chǎn)生了名稱為 TextBox組件 的文件夾 并在里面創(chuàng)建了名稱為 TextBox組件 的項(xiàng)目文件 把Visual Studio Net的當(dāng)前窗口切換到【Form VB(設(shè)計(jì))】窗口 并從【工具箱】中的【W(wǎng)indows窗體組件】選項(xiàng)卡中往Form 窗體中拖入下列組件 并執(zhí)行相應(yīng)操作 三個Label組件 三個TextBox組件 分別為TextBox TextBox 和TextBox 按照表 中數(shù)值來設(shè)定設(shè)定組件的主要屬性 請注意TextBox組件中的屬性設(shè)定值
表 【TextBox組件】項(xiàng)目窗體中各組件的主要屬性設(shè)定數(shù)值表
按照表 各值設(shè)定后的TextBox組件三種常用的式樣也就產(chǎn)生了 具體如圖 所示
圖 程序設(shè)計(jì)時(shí)TextBox組件三種常見使用方法
這三種式樣就是單行的TextBox組件 多行的TextBox組件和用以輸入類似密碼數(shù)據(jù)的TextBox組件 為TextBox 組件添加事件和事件的處理代碼 此次添加的事件的名稱是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會自動在Form vb中產(chǎn)生TextBox 的Leave事件 在Leave事件的事件處理代碼區(qū)添加下列代碼 下面代碼調(diào)用了TextBox 組件的 Clear 方法并且顯示一個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
通過VB NET VB程序員終于擁有了全部面向?qū)ο蟮奶卣?其中之一就是程序員以創(chuàng)建抽象類 雖然抽象類在編程中的作用常被過高估計(jì) 但抽象類確實(shí)提供了不少開發(fā)可行性 一段時(shí)間以來 VB程序員都在要求微軟向他們提供全面的備受C++及JAVA程序員推崇的面向?qū)ο蟮奶匦?雖然有少部份與OOP相關(guān)的特征已被添加到舊的版本上 但程序員還得等待VB NET 將實(shí)際意義上的OOP添加到VB上去 通過OOP你可以創(chuàng)建抽象類 雖然大家都對它寄予了厚望 但令人慚愧的是抽象類僅僅只能給程序員提供更多的開發(fā)可行性而已 閱讀本文您需要具備一定的面向?qū)ο笠约癡B NET的相關(guān)知識 很容易解釋什么是抽象類? 抽象類即是不能被實(shí)例化的類 而且你不能夠在自己的程序里通過這種類來生成一個對象 你也許會認(rèn)為不能被實(shí)例化的類是沒多大用處的 事實(shí)上 在某些環(huán)境下 抽象類是非常有用的 你可以把它作為一個基礎(chǔ)類以此為基類創(chuàng)建新的類 在對功能要求不高的環(huán)境下生成的類 會向你提供一個規(guī)定的啟始點(diǎn) 通過這個點(diǎn)你可以推導(dǎo)出非抽象類 在此假設(shè)一個要用抽象類的程序設(shè)計(jì) 假設(shè)圖形程序提供了大量的drawing類:比如圓 三角 曲線等等 所有這些作drawing類都有某個共同的特性 比如位置 大小 色彩 刪除等屬性 其它的類成員 比如描繪圖形的方法就不同于每個單獨(dú)的類 因此 這樣為利用抽象類創(chuàng)造了一個理想的環(huán)境 在抽象類中 你需要定義所有drawing類都需要的全部通用類成員 因?yàn)閐rawing類不響應(yīng)任何圖形 但是當(dāng)把它作為shape specific drawing類中的base類 你需要確認(rèn)所有這些非 抽象類擁有最基本的功能 創(chuàng)建抽象類 對抽象類的定義很簡單 只要在定義域里加入關(guān)鍵字MustInherit 如 Public MustInherit class MyAbstract class End class除開要包含關(guān)鍵字之外 抽象類的定義與非抽象類的定義沒什么兩樣 抽象類包含了從其它類承繼而來的屬性及方法等等 但是 在抽象類中定義的類成員(屬性及方法)是如何與衍生類中的定義元素產(chǎn)生聯(lián)系的呢?在此并沒有復(fù)雜的規(guī)則 但你作出的決定是與你所擁有的類的性能及它將衍生出來的 類所密切相關(guān) 你有三個選擇 抽象類中已有的功能比如屬性 方法等在衍生類中可以被重載 實(shí)現(xiàn)這一功能只要在成員定義中輸入Overridable關(guān)鍵字 如 Public Overridable Sub Move(NewX As Integer NewY As Integer) End Sub 為重載abstract base 類中的成員 衍生類在執(zhí)行語句中須使用Overrides關(guān)鍵字段 如 Public Overrides Move(NewX As Integer NewY As Integer) End Sub 抽象類中已有的功能不能在衍生類中重載 即是 衍生類必須使用抽象類定義的成員 如果你在抽象類中不使用任何特殊字段來定義任一成員將會產(chǎn)生該缺省 以下代碼定義了抽象類中的Xpos屬性 衍生類必須使用該屬性 因?yàn)樵搶傩圆荒鼙恢剌d 如 Public Property XPos() As Integer End Property利用MustOverride關(guān)鍵字來定義抽象類成員 該成員可以在衍生類中重載 以下舉例說明了衍生類必須執(zhí)行名為GetObjectAt()的方法 Public MustOverride Function GetObjectAt(X As Integer Y As Integer) As Object請注意MustOverride成員不需要End Sub 或End Function語句 使用MustOverride最方便的地方在于它不僅規(guī)定了成員的名稱同樣也規(guī)定了成員的符號 先前的例子要求任一衍生類都需定義名稱為GetObjectAt()的方法 因此會產(chǎn)生兩種類型的整型變量以及返回一個類型對象 該方法是在衍生類中的執(zhí)行是完全根據(jù)程序員的指令要求 通過MustOverride字段說明的方法一些時(shí)候也被稱為abstract 成員 抽象類與接口如果你熟悉接口的相關(guān)知識 你會認(rèn)為抽象類與它是如此相似 事實(shí)上只是一部份類似 定義僅含有抽象成員的抽象類基本上是與接口的定義相同的 因?yàn)槟阋呀?jīng)規(guī)定衍生類必須執(zhí)行某個具有專用符號的成員 另外 抽象類具有其它的功能 是接口無法實(shí)現(xiàn)的 尤其是在定義非抽象類成員的基本功能薄?BR當(dāng)你在認(rèn)為抽象類或是接口都能如常運(yùn)作時(shí) 請謹(jǐn)記如下幾點(diǎn) 除了從一個類(抽象或非抽象) 派生出來 一個衍生類可以執(zhí)行多個接口 從抽象類派生出來的子類同樣能夠執(zhí)行一個或多個接口 這要依你的項(xiàng)目而定 你可以只用一個抽象類或多個接口 或者抽象類和接口混合使用 VB和 NET在這項(xiàng)工作上提供了非常大的靈活性 因此你可以通過不同的方式來達(dá)到你想要的結(jié)果 底線是一些項(xiàng)目必須是通過抽象類來實(shí)現(xiàn) 抽象類也許會被認(rèn)為是一種非常專業(yè)的編程方法 它可幫程序員減少工作量并且可以生成更簡便功能更強(qiáng)大的程序 實(shí)際操作中使用抽象類 設(shè)想一下你正在為一家大公司開發(fā)一個新的員工數(shù)據(jù)庫 你的工作就是監(jiān)督類的執(zhí)行 使雇員的基本情況與管理部門的要求相吻合 同樣 在區(qū)分公司分支機(jī)構(gòu)的要求時(shí)也提供更大的便利 基本要求如下: 抽象類里有姓名 雇用時(shí)間等屬性 這些屬性不會被重載 因?yàn)榇蠖鄶?shù)雇員來自美國 因此在抽象類里執(zhí)行退休ID 以運(yùn)行社會保障號碼 國外分公司將會利用不同的方式來鑒別雇員的退休ID 因此該屬性會在衍生類里重載 以便單個分支機(jī)構(gòu)分別執(zhí)行 名稱為補(bǔ)償金的方法不會引起爭議 然后會返回一個含有雇員補(bǔ)償金細(xì)節(jié)的類型對象 因?yàn)椴煌止径家?guī)定不同的補(bǔ)償金 薪金 傭金 紅利等 因此靈活的執(zhí)行這些對象是很有必要的 由此會產(chǎn)生一個抽象方法 由此而產(chǎn)生的抽象類的代碼 稱為EmployeeBase 會在第一欄里顯示 位于法國的分公司的程序員用EmployeeBase類作為EmployeeFrance類的基類 與當(dāng)?shù)毓蛦T記錄軟件合作使用 因此 衍生類需要承繼名稱及雇用日期等字段 更多的是 在EmployeeBase 類中的RetirementID成份適合運(yùn)用在法國 因此 新類不會重載該成份 程序員做的所有這些工作是為了執(zhí)行abstract Compensation member 的重載 但是在英國 RetirementID 屬性不適用于該地 因此衍生類將會重載該成員 同樣的也會重載Compensation 成員 lishixinzhi/Article/program/net/201311/13310
1.不正確
Dim abc As myClass,定義一個可以引用myClass類型對象的變量abc。這個abc變量存在于棧上。
abc=New myClass。New myClass創(chuàng)建myClass實(shí)例對象,這個對象存在于托管堆上。然后(同時(shí))讓abc引用(指向)這個對象。
abc變量在棧上,而對象在托管堆上。
abc儲存的是對象的地址,而不是對象本身。
看下面的代碼
Dim a As myClass,b As myClass,c As myClass
a=New myClass
b=a
c=a
整個過程中只創(chuàng)建了一個myClass對象,位于托管堆上。
三個myClass類型的變量a、b、c位于棧上,都指向了這一個myClass對象
2.類的成員分 實(shí)例成員 和 靜態(tài)成員
實(shí)例成員 必須在實(shí)例對象上調(diào)用
靜態(tài)成員 可以直接調(diào)用,不需要實(shí)例對象。
這個一般是一個Form類的構(gòu)造函數(shù)。
MyBase.New ( )是調(diào)用父類的構(gòu)造函數(shù),InitializeComponent ( )是調(diào)用自己的InitializeComponent 方法。一般你在VS里拖界面,VS會自動幫你生成這個方法的實(shí)現(xiàn),里面是用代碼實(shí)現(xiàn)你拖出來的界面布局。
該實(shí)例有很多實(shí)現(xiàn)方法,下面介紹一種不同的給你:
首先要在窗體中載入以下控件:progressbar(進(jìn)度條),label(用來實(shí)時(shí)顯示文本提示),兩個timer(分別控制進(jìn)度條進(jìn)度的增減),然后用以下代碼就能實(shí)現(xiàn):
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
Timer1.Interval = 500
Timer2.Interval = 500
ProgressBar1.Value = 0
ProgressBar1.Maximum = 100
ProgressBar1.Minimum = 0
End Sub
'上述過程是設(shè)置控件的初始值,也可以在屬性面板設(shè)置
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Value += 1
Label1.Text = "當(dāng)前完成" ProgressBar1.Value "%"
If (ProgressBar1.Value = 100) Then
Timer1.Enabled = False
Timer2.Enabled = True
End If
End Sub
'timer1用來控制進(jìn)度的增加
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
ProgressBar1.Value -= 1
Label1.Text = "當(dāng)前完成" ProgressBar1.Value "%"
If (ProgressBar1.Value = 0) Then
Timer1.Enabled = True
Timer2.Enabled = False
End If
End Sub
'time2用來控制進(jìn)度的減少
End Class
本文標(biāo)題:vb.net實(shí)例講解的簡單介紹
路徑分享:http://chinadenli.net/article2/hgpcic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站排名、微信公眾號、自適應(yīng)網(wǎng)站、微信小程序、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)