VB如何開發(fā)定制控件

這篇文章主要介紹了VB如何開發(fā)定制控件,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),外鏈一元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。

我們的定制類是通過繼承UserControl類而生成的,由于UserControl也是由繼承Control類而生成的,我們的定制類將會繼承 Control類的所有有用的方法、屬性和事件。例如,由于是繼承Control類生成的,我們的定制類會自動地擁有事件處理程序。

在VB開發(fā)定制控件時特別重要的一個問題是如何顯示定制控件的用戶界面。無論如何組織定制控件,需要注意的是,定制控件有時會重新顯示。因此,當(dāng)定制控件重繪時,必須重新繪制用戶界面。考慮到控件每次重繪時,都會調(diào)用Control類的OnPaint方法,使用新的繪制定制控件用戶界面的OnPaint方法覆蓋該方法就能保證定制控件的保持一定的外觀。

表1中的代碼是一個名稱為RoundButton的控件,在圖1中,表單上有一個RoundButton定制控件,表2是其代碼。我們需要作的工作基本上就是覆蓋OnPaint方法。系統(tǒng)向該方法傳遞一個PaintEventArgs對象,從該方法中我們可以獲得控件的 System.Drawing.Graphics對象,然后使用它的方法繪制定制控件的用戶界面。

表1:RoundButton控件

Imports System.Windows.Forms  Imports System.Drawing   Public Class RoundButton : Inherits UserControl   Public BackgroundColor As ColorColor = Color.Blue  Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)   Dim graphics As Graphics = e.Graphics  Dim penWidth As Integer = 4 Dim pen As Pen = New Pen(Color.Black, 4)   Dim fontHeight As Integer = 10 Dim font As Font = New Font("Arial", fontHeight)   Dim brush As SolidBrush = New SolidBrush(BackgroundColor)  graphics.FillEllipse(brush, 0, 0, Width, Height)  Dim textBrush As SolidBrush = New SolidBrush(Color.Black)   graphics.DrawEllipse(pen, CInt(penWidth / 2), _  CInt(penWidth / 2), Width - penWidth, Height - penWidth)   graphics.DrawString(Text, font, textBrush, penWidth, _  Height / 2 - fontHeight)  End Sub  End Class

表1中的代碼非常地簡單,簡直令人不能相信。我們的定制類只有一個方法:OnPaint。簡單地說,該方法傳遞一個PaintEventArgs對象,從中我們可以獲得System.Drawing.Graphics對象。這一Graphics對象表示我們的定制控件的繪制區(qū),無論在該Graphics對象上繪制什么東西,它都會顯示為定制用戶控件的界面。

表2:RoundButton控件的調(diào)用

Public Class MyForm  Inherits System.Windows.Forms.Form   #Region " Windows Form Designer generated code "   Private WithEvents roundButton As RoundButton  Public Sub New()  MyBase.New()   '這個調(diào)用是Windows Form Designer所要求的  InitializeComponent()   '在InitializeComponent()調(diào)用后,可以添加任意的實例化代碼   End Sub   '表單覆蓋,整理組件列表  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)  If disposing Then  If Not (components Is Nothing) Then  components.Dispose()  End If  End If  MyBase.Dispose(disposing)  End Sub   'Windows Form Designer所要求的  Private components As System.ComponentModel.IContainer   '注意:下面的過程是Windows Form Designer所要求的,  '可以使用Windows Form Designer對它進行修改,  '但不要使用軟件編輯程序進行修改  Private Sub InitializeComponent()  '  'MyForm  '  Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)  Me.ClientSize = New System.Drawing.Size(292, 273)  Me.Name = "MyForm" Me.Text = "Using Custom Control"  roundButton = New RoundButton()  AddHandler roundButton.Click, AddressOf roundButton_Click  roundButton.Text = "Click Here!" roundButton.BackgroundColor = System.Drawing.Color.White  roundButton.Size = New System.Drawing.Size(80, 80)  roundButton.Location = New System.Drawing.Point(100, 30)  Me.Controls.Add(roundButton)   End Sub   #End Region   Private Sub roundButton_Click(ByVal source As Object, ByVal e As EventArgs)  MessageBox.Show("Thank you.")  End Sub  Public Shared Sub Main()  Dim form As MyForm = New MyForm()  Application.Run(form)  End Sub   End Class

感謝你能夠認真閱讀完這篇文章,希望小編分享的“VB如何開發(fā)定制控件”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

網(wǎng)頁題目:VB如何開發(fā)定制控件
轉(zhuǎn)載源于:http://m.kartarina.com/article6/ijpeig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣電子商務(wù)域名注冊小程序開發(fā)企業(yè)建站App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
主站蜘蛛池模板: 亚洲国产精品无码久久久秋霞2| 91精品无码久久久久久五月天| 亚洲中文字幕无码av| 精品无码国产自产在线观看水浒传| 无码专区人妻系列日韩精品少妇| 内射无码专区久久亚洲| 无码精品一区二区三区免费视频| 无码AV一区二区三区无码| 日韩精品无码专区免费播放| 国产精品一区二区久久精品无码| 无码精品国产一区二区三区免费| 国产精品无码专区在线播放| 98久久人妻无码精品系列蜜桃| heyzo专区无码综合| 精品无码国产一区二区三区51安| 中文字幕乱妇无码AV在线| 无码人妻精品一区二区三区9厂| 熟妇无码乱子成人精品| 免费无码av片在线观看 | 人妻少妇精品无码专区| 国产亚洲精品a在线无码| 精品久久久久久无码人妻蜜桃| 无码毛片内射白浆视频| 69天堂人成无码麻豆免费视频 | 亚洲AV无码乱码在线观看代蜜桃 | 激情无码亚洲一区二区三区| 无码AV中文一区二区三区| 国产在线精品无码二区| 中文一国产一无码一日韩| 三上悠亚ssⅰn939无码播放| 精品无码人妻一区二区三区不卡| 亚洲a无码综合a国产av中文| 亚洲AV无码专区在线观看成人 | 亚洲AV无码精品国产成人| 无码人妻视频一区二区三区| 小SAO货水好多真紧H无码视频| 午夜福利av无码一区二区| 日韩网红少妇无码视频香港| 免费无码一区二区三区| 中文无码精品A∨在线观看不卡| 亚洲中文字幕无码久久2020 |