vb.net中控件都是矩形的,如果一定要看起来是其他形状的,只能用背景图片,一般要三个背景图片,正常时候、鼠标移上时候、按下时候的。分别在按钮的四个事件:MouseHover MouseLeave MouseDown MouseUp的时候更换成相应的背景图片
成都创新互联公司致力于成都网站建设、成都网站设计,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择成都创新互联公司,就选择了安全、稳定、美观的网站建设服务!
你用的是控件数组
光发了代码不知道你用的是动态的还是静态的数组
还有就是有没有shape1(0)呢
动态的话你的用
load
shape1(i)
放到
for循环下面就可以了
记得VB6当中有Shape控件,但是VB.net里这个控件不存在了。
提个思路:使用Picture控件或Label控件,通过代码在控件里绘图想要的图形,可以试试。
那是后台功能型的控件,自定义类,继承即可实现,比如
新建一个类
Public Class Text1
Inherits Timer‘这里继承Timer 控件
End Class
运行程序一次后在右边工具栏左上方就可以看到我们自己建的类控件,拖动到窗体上就有了你说的效果
'我给你找到了,设置region属性就可
Private Sub PictureBox1_DoubleClick(sender As System.Object, e As System.EventArgs) Handles PictureBox1.DoubleClick
If PictureBox1.Region Is Nothing Then
Dim path As New System.Drawing.Drawing2D.GraphicsPath
path.AddEllipse(0, 0, 200, 200)
PictureBox1.Region = New Region(path)
Else
PictureBox1.Region = Nothing
End If
End Sub
'这个双击图片框使其变形,通过GraphicsPath对象可以作出各种形态来,比如可作出文字形状
Dim stringText As String = "我是谁"
Dim family As New FontFamily("Arial")
Dim myfontStyle As Integer = CInt(FontStyle.Italic)
Dim emSize As Integer = 86
Dim origin As New Point(20, 20)
Dim format As StringFormat = StringFormat.GenericDefault
path.AddString(stringText, family, myfontStyle, emSize, _
origin, format)
PictureBox1.Region = New Region(path)