国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

走近VB.Net(七)在窗體上畫圖

2024-07-10 13:01:24
字體:
來源:轉載
供稿:網友
走近vb.net(七)在窗體上畫圖
如果看過一些文章一定知道在窗體上畫圖要使用system.drawing類,在vb.net中沒有line與label控件,需要自已寫一些代碼,

首先寫一個事件過程onpaint.在顯示窗體的同時顯示圖形

protected overrides sub onpaint(byval e as painteventargs)

'todo: 請在此處添加繪圖代碼

end sub





byval e as painteventargs是一個參數類,這個有些象在vb6在使用的自定義類型,在一個集合中有多個成員變量,(參考

《vb.net核心定義》之集合/成員)。在e后面打點就可以看到相關的參數。在mouse_down,mouse_up等事件中獲取x,y坐標就使用

e.x跟e.y。在窗體上有些事件需要手工添加,前面幾章有相關內容,現在我們要使用的是e.graphics參數,

請添加如下代碼:

dim gp as graphics = e.graphics

當然你要記住在程序代碼的起始加了imports system.drawing 這樣system.drawing.graphics 可以寫成graphics,而system.drawing.pen

可以寫成pen
另外我們要創建一個畫筆對象,這就象現實中一樣,畫筆是一個對象,我們使用畫筆去繪圖。

dim newpen as new pen(color.black,5)

甚至可以這樣寫:

dim newpen as new pen(color.fromargb(22, 23, 24), 5)

pen是一個重載性質的函數,也就是有好幾種格式,在打逗號以后出現的提示上可以看到一個向下的鍵頭與數字,點擊箭頭可以

察看函數的不同版本使用的不同參數。這里使用了一個system.draw.color類的fromargb的函數,由于他也是一個重載的孫數,你可以寫入

a,r,g,b四個參數,也可以寫入r,g,b三個參數,一共有四種版本供您使用,也只要在打逗號以后出現的提示上可以看到一個向下的鍵頭與數字即可。

你可以只使用一個色彩的參數,或者在后面加一個整數,定義畫筆的大小,也就是畫出來的線條應該有多寬,記住color也是system.drawing

的一個類如:dim newpen as new pen(color.black)

現在使用drawline方法畫出想要的線條,如下:

gp.drawline(newpen, 10, 20, 70, 80)

drawline也是一個重載的方法(overloads public sub drawline)一般是使用5個參數,后面四個可以是integer類型,也可以是single的

浮點類型。這里使用的是整數

第一個是代表畫筆,后面依次是x1,y1(起點坐標),x2,y2(終點坐標)





畫一個矩形如下:

protected overrides sub onpaint(byval e as painteventargs)

dim gp as graphics = e.graphics

dim newpen as new pen(color.black, 5)

gp.drawrectangle(newpen, 10, 20, 70, 80)

end sub



畫正方形要求最后兩個參數相同:

protected overrides sub onpaint(byval e as painteventargs)

dim gp as graphics = e.graphics

dim newpen as new pen(color.black, 5)

gp.drawrectangle(newpen, 10, 20, 80, 80)

end sub



畫一拋物線如下:

protected overrides sub onpaint(byval e as painteventargs)

dim gp as graphics = e.graphics

dim newpen as new pen(color.black, 5)

gp.drawarc(newpen, 10, 20, 70, 80, 123, 233)

end sub



畫貝塞爾曲線如下:

protected overrides sub onpaint(byval e as painteventargs)

dim gp as graphics = e.graphics

dim newpen as new pen(color.black, 5)

gp.drawbezier(newpen, 10, 20, 70, 80, 123, 233, 23, 45)

end sub



你也可以在一屏之內同時進行多次繪圖,如下:

protected overrides sub onpaint(byval e as painteventargs)

dim i as integer

dim gp as graphics = e.graphics

for i = 1 to 10

dim newpen as new pen(color.fromargb(i * 25, i * 25, i * 25), 5)

gp.drawrectangle(newpen, 10 + i * 6, 20 + i * 6, 80, 80)

next

end sub

運行一下,這個圖片一定讓你捧腹一笑,你可以隨意改變參數看看有什么效果。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定西市| 开远市| 宁安市| 闽侯县| 当雄县| 石阡县| 昭通市| 元阳县| 永靖县| 临江市| 玉龙| 四平市| 美姑县| 天津市| 苍梧县| 福海县| 九江市| 舒城县| 建昌县| 昌江| 永胜县| 阜平县| 雅江县| 巨野县| 武川县| 宜都市| 中阳县| 扶余县| 齐齐哈尔市| 黎城县| 谷城县| 桂林市| 大港区| 霍林郭勒市| 麻江县| 徐闻县| 将乐县| 日喀则市| 镇赉县| 惠安县| 巴彦县|