vb.net圆角矩形,vb怎么添加圆角矩形

如何在vb.net中创建圆角窗体

如下所示:

成都创新互联是一家专业提供错那企业网站建设,专注与成都网站建设、成都网站制作、H5场景定制、小程序制作等业务。10年已为错那众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

Private Sub Type(ByVal sender As Control, ByVal p_1 As Integer, ByVal p_2 As Double)

Dim oPath As New Drawing2D.GraphicsPath()

oPath.AddClosedCurve(New Point() {New Point(0, sender.Height / p_1), New Point(sender.Width / p_1, 0), New Point(sender.Width - sender.Width / p_1, 0), New Point(sender.Width, sender.Height / p_1), New Point(sender.Width, sender.Height - sender.Height / p_1), New Point(sender.Width - sender.Width / p_1, sender.Height), _

New Point(sender.Width / p_1, sender.Height), New Point(0, sender.Height - sender.Height / p_1)}, CSng(p_2))

sender.Region = New Region(oPath)

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Type(Me, 20, 0.1)

End Sub

VB常用属性

(1) Appearance属性

该属性有两个可选值:0- Flat表示在窗体运行时不以3D方式显示,1-Flat表示在窗体运行时以3D方式显示。

(2) BackColor和ForeColor属性

设置或返回窗体前景颜色和背景颜色。代码设置如下:

Form1. BackColor=vbcolor

Form1. ForeColor=vbcolor

(3)Bordertyle属性

该属性是设置窗体的边界类型代码设置如下:

Form1.BorderStyle=value

各个值的含义如下:

0- None窗体无边框。

1- Fixed Single 固定边框,无最大化和最小化按钮,窗体运行时不可变。

2- Sizeable 默认值,双线边框,有最大化和最小化按钮,窗体运行时可变。

3- Fixed Dialog双线边框,无最大化和最小化按钮,窗体运行时不可变。

扩展资料

VB中所有的代码都是依附于模块的,而模块在VB中可以分为3种类型:窗体模块、标准模块和类模块。

类模块可以创建自定义的类,该类包括自己的属性、方法和事件。自定义的类相当于一个没有实体的控件。

比如一个命令按钮,是VB系统中已经定义好的类,它具有自己的属性、方法和事件,它也有实体。而类模块创建的类除了没有实体外,其余性质与控件类似。类模块在进阶教程中暂不做深入介绍。

注意:在代码区顶部,声明变量a和变量b。变量a使用public关键字声明:其表示全局变量,可以在本工程内所有窗体模块、标准模块、类模块中使用。变量b使用dim关键字声明:

其表示模块级变量,仅在本模块中使用。

vb.net绘图问题

代码:

Public Class Form1

'*********************************************************************   

'作者:章鱼哥,QQ:3107073263 群:309816713       

'如有疑问或好的建议请联系我,大家一起进步     

'*********************************************************************     

'绘制圆角矩形函数

Private Function GetRoundedRectPath(ByVal rect As Rectangle, ByVal radius As Integer) As System.Drawing.Drawing2D.GraphicsPath

rect.Offset(-1, -1)

Dim RoundRect As New Rectangle(rect.Location, New Size(radius - 1, radius - 1))

Dim path As New System.Drawing.Drawing2D.GraphicsPath

path.AddArc(RoundRect, 180, 90)     '左上角

RoundRect.X = rect.Right - radius   '右上角

path.AddArc(RoundRect, 270, 90)

RoundRect.Y = rect.Bottom - radius  '右下角

path.AddArc(RoundRect, 0, 90)

RoundRect.X = rect.Left             '左下角

path.AddArc(RoundRect, 90, 90)

path.CloseFigure()

Return path

End Function

'绘制矩形

Private Sub DrawingRect()

Dim g As Graphics = Me.CreateGraphics

Dim Pen As New Pen(Brushes.DarkRed, 2)

Dim Hei As Integer = Me.Height

Dim Wid As Integer = Me.Width

'矩形的位置和长宽随着窗体的变化而改变

Dim Rec As New Rectangle(Int(Wid / 5), Int(Hei / 5), Int(Wid / 2), Int(Hei / 2))

'  g.DrawRectangle(Pen, Rec)

'清楚现有的矩形

g.Clear(Me.BackColor)

g.DrawPath(Pen, GetRoundedRectPath(Rec, 30))

End Sub

Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

DrawingRect()

End Sub

Private Sub Form1_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged

Me.Invalidate() '此函数可引发Paint事件

End Sub

End Class

效果截图:

原窗口:

缩小后:

在vb.net 中DrawEllipse和DrawCircle的区别?

你说的是GDI+里的方法吗?

我记得没有drawCircle这个方法的,只有画DrawElipse椭圆和DrawArc这2个方法,分别表示画椭圆(画圆统一用DrawElipse方法)和画弧(画椭圆弧统一用DrawArc方法)。

统一的方法如何实现椭圆、圆的呢?其实是用椭圆、圆的外切矩形来表示的。椭圆跟圆的唯一区别是它们外切矩形的长宽比不同,圆是一个正方形,椭圆是矩形,而且椭圆需要考虑有可能画转了角度的情况的椭圆,长轴与x轴是有特定角度的。

VB.net一个很简单的UI问题

花了二十分钟给你写了代码,已测试。建议学习并使用System.Drawing绘制。

主要是掌握Graphics.FillRectangle和DrawString的使用。

Imports System.Drawing

Public Class 进度条UI

Public 上面笔刷 As SolidBrush = New SolidBrush(Color.FromArgb(192, 175, 238, 238))

Public 下面笔刷 As SolidBrush = New SolidBrush(Color.FromArgb(192, 30, 144, 255))

Public 文字笔 As SolidBrush = New SolidBrush(Color.FromArgb(255, 255, 255, 255))

Public 字体 As Font = New Font("微软雅黑", 14.0)

Public 文字格式 As StringFormat = New StringFormat() With

{.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center}

''' summary

''' 绘制指定进度的图像。

''' 当进度变化时调用一次本方法,建议将创建的Graphics对象保存到变量而不要重复创建。。

''' /summary

''' param name="控件"绘制到此控件的工作区/param

''' param name="g"绘制到控件的Graphics对象,例如 Button1.CreateGraphics()/param

''' param name="进度"进度百分比实数,57% = 0.57/param

Public Sub 绘制(ByRef 控件 As Control, ByRef g As Graphics, ByVal 进度 As Double)

Dim 矩形 = 控件.ClientRectangle '获取控件的工作区矩形

Dim 下面高度 = CInt(矩形.Height * 进度) '获取下面颜色块的高度

Dim 中间位置 = 矩形.Top + 矩形.Height - 下面高度 '获取中间分界线的Y坐标

Dim 上矩形 = New Rectangle(矩形.X, 矩形.Y, 矩形.Width, 矩形.Height - 下面高度)

Dim 下矩形 = New Rectangle(矩形.X, 中间位置, 矩形.Width, 下面高度)

g.FillRectangle(上面笔刷, 上矩形)

g.FillRectangle(下面笔刷, 下矩形)

'绘制文字

Dim 文字 As String = String.Format("{0:0.00}%", 进度 * 100)

g.DrawString(文字, 字体, 文字笔, 矩形, 文字格式)

End Sub

End Class

下面是Form1窗体的代码:添加一个Button1和Timer1控件,将Button1尺寸拖大点

Public Class Form1

Public g As Graphics

Public 进度条UI As New 进度条UI

Public 进度 As Double

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

g = Button1.CreateGraphics()

Timer1.Enabled = Not Timer1.Enabled

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

进度 += 0.01

进度条UI.绘制(Button1, g, 进度)

End Sub

End Class

vb.net中有没有哪个控件可以自定义形状(如圆形,多边形)和颜色,如果有,希望你您给出代码

记得VB6当中有Shape控件,但是VB.net里这个控件不存在了。

提个思路:使用Picture控件或Label控件,通过代码在控件里绘图想要的图形,可以试试。


当前文章:vb.net圆角矩形,vb怎么添加圆角矩形
文章分享:http://cdiso.cn/article/hspcip.html

其他资讯