VB.NET是目前應(yīng)用比較廣泛的編程語(yǔ)言。它在文件處理,移動(dòng)設(shè)備操作,圖形界面的處理方面都能夠體現(xiàn)強(qiáng)大的作用。那么今天我們就一起學(xué)習(xí)一個(gè)其中的應(yīng)用技巧,VB.NET制作圖片按鈕的實(shí)際操作方法。
VB.NET制作圖片按鈕思路:很簡(jiǎn)單,就是在一個(gè)picturebox控件上放置一個(gè)button控件,然后將這個(gè)button添加進(jìn)picturebox上(確保先拖拽picturebox,后拖拽button),設(shè)置這個(gè)button的背景色(這個(gè)時(shí)候是相對(duì)于picturebox)為透明。
Imports System.ComponentModel
Public Class picturebutton
Inherits System.Windows.Forms.UserControl
#Region " Windows 窗體設(shè)計(jì)器生成的代碼 "
'UserControl 重寫(xiě) dispose 以清理組件列表。
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 窗體設(shè)計(jì)器所必需的
Private components As System.ComponentModel.IContainer
注意:以下VB.NET制作圖片按鈕的過(guò)程是 Windows 窗體設(shè)計(jì)器所必需的
可以使用 Windows 窗體設(shè)計(jì)器修改此過(guò)程。
不要使用代碼編輯器修改它。
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
Friend WithEvents Button1 As System.Windows.Forms.Button
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
Me.Button1 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'PictureBox1
Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.Size = New System.Drawing.Size(136, 40)
Me.PictureBox1.TabIndex = 0
Me.PictureBox1.TabStop = False
'Button1
Me.Button1.Name = "Button1"
Me.Button1.TabIndex = 1
Me.Button1.Text = "Button1"
'picturebutton
Me.Controls.AddRange(New System.Windows.Forms.Control()
{Me.Button1, Me.PictureBox1})
Me.Name = "picturebutton"
Me.ResumeLayout(False)
End Sub
#End Region
Public Sub New()
MyBase.New()
該調(diào)用是 Windows 窗體設(shè)計(jì)器所必需的。
InitializeComponent()
'在 InitializeComponent()
調(diào)用之后添加任何初始化
Me.Button1.Width = 100 '設(shè)置按鈕的初始大小
Me.Button1.Height = 23
Me.Button1.BackColor = Color.Transparent '背景色透明
Me.Button1.ForeColor = Color.Black
Me.PictureBox1.Controls.Add(Me.Button1)
End Sub
Private m_text As String '設(shè)置按鈕標(biāo)題
Private a As Integer
'Private m_p_w_picpath As Image
Public Property p_w_picpath() As p_w_picpath
Get
Return Me.PictureBox1.Image
End Get
Set(ByVal Value As p_w_picpath)
Me.PictureBox1.Image = Value
Invalidate()
End Set
End Property
Shadows Property forecolor()
As Color
Get
Return Me.Button1.ForeColor
End Get
Set(ByVal Value As Color)
Me.Button1.ForeColor = Value
Invalidate()
End Set
End Property
Shadows Sub ResetForeColor()
Me.Button1.ForeColor = SystemColors.ControlText
End Sub
VB.NET制作圖片按鈕的單擊事件
Event BtnClick(ByVal sender As Object, ByVal e As System.EventArgs)
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Button1.Click
RaiseEvent BtnClick(Me, e)
End Sub
控件改變大小時(shí),需重繪控件,以使子控件排位美觀
Private Sub FileTextBox_Resize(ByVal sender As Object, ByVal e As System.EventArgs)
Handles MyBase.Resize
RedrawControls()
End Sub
子控件會(huì)自動(dòng)繼續(xù)容器的Font屬性,所以改變?nèi)萜鞯腇ont屬性時(shí)也要重繪控件
Protected Overrides Sub OnFontChanged(ByVal e As System.EventArgs)
'讓基控件更新文本框
MyBase.OnFontChanged(e)
'重繪控件
RedrawControls()
End Sub
'重繪控件
Private Sub RedrawControls()
'控件寬度
Dim width As Integer = Me.ClientRectangle.Width '獲得工作區(qū)寬
以VB.NET制作圖片按鈕的高度來(lái)確定控件高度
Dim btnSide As Integer = Button1.Height
Dim btnwidth As Integer = Button1.Width
If Me.ClientRectangle.Height <> btnSide Then
設(shè)置控件工作區(qū)的大小
'Me.SetClientSizeCore(btnwidth, btnSide)
Me.SetClientSizeCore(width, btnSide)
'這里使用工作區(qū)的寬是因?yàn)椋喊粹o和picturebox可以調(diào)整寬度
'上面的語(yǔ)句激發(fā)了嵌套的Resize事件,因此需要立即退出,如果不退出,就會(huì)反復(fù)調(diào)用進(jìn)入死循環(huán)
Exit Sub
End If
調(diào)整子控件的大小
'Txt.SetBounds(0, 0, width, btnSide)
'Btn.SetBounds(width - 19, 2, 17, btnSide - 4)
Me.PictureBox1.SetBounds(0, 0, width, btnSide)
Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Me.Button1.SetBounds(0, 0, width, btnSide)
End Sub
End Class
VB.NET制作圖片按鈕的相關(guān)實(shí)現(xiàn)方法就為大家介紹到這里。B.NET制作圖片按鈕的相關(guān)實(shí)現(xiàn)方法就為大家介紹到這里。
創(chuàng)新互聯(lián)建站專(zhuān)注于謝家集網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供謝家集營(yíng)銷(xiāo)型網(wǎng)站建設(shè),謝家集網(wǎng)站制作、謝家集網(wǎng)頁(yè)設(shè)計(jì)、謝家集網(wǎng)站官網(wǎng)定制、成都小程序開(kāi)發(fā)服務(wù),打造謝家集網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供謝家集網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。