中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VB如何開發定制控件

發布時間:2021-12-03 09:21:43 來源:億速云 閱讀:143 作者:小新 欄目:編程語言

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

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

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

表1中的代碼是一個名稱為RoundButton的控件,在圖1中,表單上有一個RoundButton定制控件,表2是其代碼。我們需要作的工作基本上就是覆蓋OnPaint方法。系統向該方法傳遞一個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對象表示我們的定制控件的繪制區,無論在該Graphics對象上繪制什么東西,它都會顯示為定制用戶控件的界面。

表2:RoundButton控件的調用

Public Class MyForm  Inherits System.Windows.Forms.Form   #Region " Windows Form Designer generated code "   Private WithEvents roundButton As RoundButton  Public Sub New()  MyBase.New()   '這個調用是Windows Form Designer所要求的  InitializeComponent()   '在InitializeComponent()調用后,可以添加任意的實例化代碼   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如何開發定制控件”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vb
AI

青州市| 巴林右旗| 赣州市| 剑川县| 响水县| 双辽市| 武汉市| 广昌县| 萍乡市| 榆林市| 会泽县| 汾西县| 深圳市| 定边县| 黑龙江省| 芷江| 阿拉善左旗| 镇宁| 二连浩特市| 长岭县| 宜川县| 张掖市| 聂拉木县| 成安县| 大丰市| 兴城市| 塔城市| 疏附县| 云龙县| 肇源县| 汽车| 苏尼特左旗| 鄂托克旗| 尼玛县| 沂南县| 宁蒗| 新安县| 会宁县| 邵武市| 汉中市| 庆安县|