設想是把一個Picturebox1設定為另一個Picturebox2父視窗,1裝載背景圖為wmf檔案,2中繪圖。
為什么可以繪圖,但一閃就沒有了。
哪位大神能解答一下。謝謝啦

Private Sub Button1_Click(ByVal sender As Systemobject, ByVal e As System.EventArgs)Handles Button1.Click
DrawALine(PageToShow,Color.Red,50, 50,5, 100)
End Sub
”以下建立繪圖函式
Public Sub DrawALine(ByVal WhereToDraw as Picturebox,ByVal Draw_Color As Color,
ByVal StartPoint_X As Integer,ByVal StartPoint Y As Integer, ByVal Line_Width As Integer, ByVal Line_Height As Integer)
Dim Pic As New PictureBox
With Pic
.Name ="Pic"
.Size = New Size(Line_Width+ 6, Line_Height + 6) SizeMode = PictureBoxSizeMode.StretchImage
.Parent = WhereToDraw
.Location= New Point(StartPoint_X-3 StartPoint_Y-3)
End With
Dim g As Graphics=Pic.CreateGraphics()定義畫布 Dim DrawPen As New Pen(Draw_color, Line_Width)
g.DrawLine (Draw_Pen, 3 ,3,3+ Line_Width, 3 + Line_Height)
Ernd Suib
uj5u.com熱心網友回復:
句子中可能有敲錯的,代碼是在照片掃描基礎上修改的。大家見諒uj5u.com熱心網友回復:
你知道控制元件是怎么顯示的么?首先繪制控制元件背景,然后渲染控制元件,再執行用戶的繪制。
你在按鈕事件對控制元件繪制,當控制元件被遮擋或重繪,系統會使控制元件無效,觸發WM_PAINT,對控制元件重新繪制,你之前畫的就沒有了
你可以把代碼放在控制元件的Paint事件中,不過會閃爍,你再去看看雙緩沖繪圖就能解決你的問題。
uj5u.com熱心網友回復:
謝謝大佬的解答,我是個編程愛好者,基礎不扎實。
剛我把這個函式放在WhereToDraw的Paint事件中,可以完整顯示了。
但我的初衷是想,做一個通過呼叫一個函式來畫很多引數不同的圖形,且每個圖形都可以單獨拖動的小程式。
這方面不知道您能否不吝賜教一下。不甚感謝。
uj5u.com熱心網友回復:
在父視窗的Paint事件函式里面加上PageToDraw. invalidate()可以了新的問題又出現了,不重繪帶來的就是視窗變化后,畫上去的Picturebox控制元件變黑了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/267867.html
標籤:VB.NET
上一篇:動態構建Lambda
