如下所示:
成都創新互聯是一家專業提供錯那企業網站建設,專注與成都網站建設、成都網站制作、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
(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關鍵字聲明:
其表示模塊級變量,僅在本模塊中使用。
代碼:
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
效果截圖:
原窗口:
縮小后:
你說的是GDI+里的方法嗎?
我記得沒有drawCircle這個方法的,只有畫DrawElipse橢圓和DrawArc這2個方法,分別表示畫橢圓(畫圓統一用DrawElipse方法)和畫弧(畫橢圓弧統一用DrawArc方法)。
統一的方法如何實現橢圓、圓的呢?其實是用橢圓、圓的外切矩形來表示的。橢圓跟圓的唯一區別是它們外切矩形的長寬比不同,圓是一個正方形,橢圓是矩形,而且橢圓需要考慮有可能畫轉了角度的情況的橢圓,長軸與x軸是有特定角度的。
花了二十分鐘給你寫了代碼,已測試。建議學習并使用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
記得VB6當中有Shape控件,但是VB.net里這個控件不存在了。
提個思路:使用Picture控件或Label控件,通過代碼在控件里繪圖想要的圖形,可以試試。
本文標題:vb.net圓角矩形,vb怎么添加圓角矩形
網站鏈接:http://vcdvsql.cn/article8/hspcip.html
成都網站建設公司_創新互聯,為您提供外貿建站、面包屑導航、做網站、品牌網站設計、App開發、建站公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯