VB.NET是目前应用比较广泛的编程语言。它在文件处理,移动设备操作,图形界面的处理方面都能够体现强大的作用。那么今天我们就一起学习一个其中的应用技巧,VB.NET制作图片按钮的实际操作方法。
公司主营业务:成都网站制作、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出颍上免费做网站回馈大家。
VB.NET制作图片按钮思路:很简单,就是在一个picturebox控件上放置一个button控件,然后将这个button添加进picturebox上(确保先拖拽picturebox,后拖拽button),设置这个button的背景色(这个时候是相对于picturebox)为透明。
- Imports System.ComponentModel
- Public Class picturebutton
- Inherits System.Windows.Forms.UserControl
- #Region " Windows 窗体设计器生成的代码 "
- 'UserControl 重写 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 窗体设计器所必需的
- Private components As System.ComponentModel.IContainer
注意:以下VB.NET制作图片按钮的过程是 Windows 窗体设计器所必需的
可以使用 Windows 窗体设计器修改此过程。
不要使用代码编辑器修改它。
- Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
- Friend WithEvents Button1 As System.Windows.Forms.Button
Private Sub InitializeComponent()- 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()
该调用是 Windows 窗体设计器所必需的。
- InitializeComponent()
- '在 InitializeComponent() 调用之后添加任何初始化
- Me.Button1.Width = 100 ‘设置按钮的初始大小
- 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 ‘设置按钮标题
- Private a As Integer
- 'Private m_image As Image
_ - Public Property image() As image
- Get
- Return Me.PictureBox1.Image
- End Get
- Set(ByVal Value As image)
- 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
控件改变大小时,需重绘控件,以使子控件排位美观
- Private Sub FileTextBox_Resize(ByVal sender As Object,
ByVal e As System.EventArgs) Handles MyBase.Resize- RedrawControls()
- End Sub
子控件会自动继续容器的Font属性,所以改变容器的Font属性时也要重绘控件
- 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 '获得工作区宽
以VB.NET制作图片按钮的高度来确定控件高度
- Dim btnSide As Integer = Button1.Height
- Dim btnwidth As Integer = Button1.Width
- If Me.ClientRectangle.Height <> btnSide Then
设置控件工作区的大小
- 'Me.SetClientSizeCore(btnwidth, btnSide)
- Me.SetClientSizeCore(width, btnSide)
- '这里使用工作区的宽是因为:按钮和picturebox可以调整宽度
- '上面的语句激发了嵌套的Resize事件,因此需要立即退出,
如果不退出,就会反复调用进入死循环- Exit Sub
- End If
调整子控件的大小
- '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制作图片按钮的相关实现方法就为大家介绍到这里。
网站题目:VB.NET制作图片按钮实现步骤一一讲解
网页URL:http://www.shufengxianlan.com/qtweb/news38/20188.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联