真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net劃線刷新 vba窗體

在vbnet中,我在picturebox里面畫線,用滾動(dòng)條拉動(dòng)picturebox顯示最新畫出的圖

vb.net沒有自動(dòng)重畫功能,要在Paint事件中寫代碼對(duì)圖形重畫。

創(chuàng)新互聯(lián)公司客戶idc服務(wù)中心,提供成都服務(wù)器托管、成都服務(wù)器、成都主機(jī)托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價(jià)的產(chǎn)品以及開放、透明、穩(wěn)定、高性價(jià)比的服務(wù),資深網(wǎng)絡(luò)工程師在機(jī)房提供7*24小時(shí)標(biāo)準(zhǔn)級(jí)技術(shù)保障。

另外一種情況,如果在Image屬性設(shè)置了一幅圖像,圖像能夠保持完整性的。所以你可以把圖形繪在位圖上,把位圖綁定到Image屬性上。

先綁定一幅位圖:

Dim bm as New BitMap(800,600)

PictureBox1.Image=bm

作圖時(shí)不是對(duì)圖片框,而是在位圖上作圖。

dim gr As Grapthics=Graphics.FromImage(bm) '建立位圖的繪圖設(shè)備

接下來就可用gr 的繪圖方法作圖

作完圖,PictureBox1.Refresh 刷新一下。

vb.net GDI繪圖刷新問題

繪圖代碼寫在Paint事件中,如

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

Dim g As Graphics = Me.CreateGraphics

g.DrawLine(Pens.Red, 100, 100, 200, 100)

End Sub

'方法二:在 PictureBox1上顯示圖像----圖畫在Bitmap

PictureBox1.Image = Nothing

Dim wid As Integer = PictureBox1.ClientSize.Width

Dim hgt As Integer = PictureBox1.ClientSize.Height

Dim bm As New Bitmap(wid, hgt)

Dim g As Graphics = Graphics.FromImage(bm)

'畫圖代碼

'畫圖代碼

PictureBox1.Image = bm

PictureBox1.Refresh()

g.Dispose()

vb.net 畫線再畫保留以前畫得

可以把所有畫的線都保存在一個(gè)列表中,畫的時(shí)候全部畫出即可。如下:

Public?Class?Form1

Class?Line? ? ? '直線類

? Public?Point1,?Point2?As?Point? ? ?'成員,直線的兩個(gè)端點(diǎn)

? Sub?New(p1?As?Point,?p2?As?Point)? ?'構(gòu)造方法

? ? ? Point1?=?p1

? ? ? Point2?=?p2

? End?Sub

? Public?Sub?Draw(g?As?Graphics)? ? ? '繪制方法

? ? ? g.DrawLine(Pens.Black,?Point1,?Point2)

? End?Sub

End?Class

Private?Lines?As?New?List(Of?Line)? ? ? '列表用于保存所有畫下的直線

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

? BackColor?=?Color.White

? DoubleBuffered?=?True? ? ? ?'開啟雙緩沖可有效避免閃爍

End?Sub

Private?Sub?Form1_MouseDown(sender?As?Object,?e?As?MouseEventArgs)?Handles?Me.MouseDown

? Lines.Add(New?Line(e.Location,?e.Location))? ? ?'在直線列表中添加直線

End?Sub

Private?Sub?Form1_MouseMove(sender?As?Object,?e?As?MouseEventArgs)?Handles?Me.MouseMove

? If?e.Button??Windows.Forms.MouseButtons.Left?Then?Return?'左鍵未按下

? '鼠標(biāo)拖動(dòng)時(shí)改變列表最后一條直線(也即當(dāng)前直線的第二個(gè)端點(diǎn))

? Lines(Lines.Count?-?1).Point2?=?e.Location

? Refresh()? ? ? ?'刷新窗體

End?Sub

'在Form的Paint事件中繪制所有直線,每次Form1重繪時(shí)都會(huì)觸發(fā)Paint事件

'PS:?也可以通過重寫OnPaint方法來達(dá)到類似的效果

Private?Sub?Form1_Paint(sender?As?Object,?e?As?PaintEventArgs)?Handles?Me.Paint

? e.Graphics.SmoothingMode?=?Drawing2D.SmoothingMode.AntiAlias? ? '開啟抗鋸齒

? For?Each?l?In?Lines? ? ?'遍歷所有直線

? ? ? l.Draw(e.Graphics)? '調(diào)用繪制方法,傳入的參數(shù)可以理解為畫布

? Next

End?Sub

End?Class

運(yùn)行效果:


網(wǎng)站標(biāo)題:vb.net劃線刷新 vba窗體
網(wǎng)站URL:http://weahome.cn/article/dogsepe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部