我正在嘗試熟悉 vb.net 中的圖形,并且想在Form1不使用該Form1_Paint方法但使用Button1
然而,這條線只畫了大約四分之一,然后停止,如圖所示:
我想我需要增加圖形物件的剪輯,z我嘗試了以下但它不起作用。我還嘗試減小剪輯大小并且按預期作業。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
z.Clip.MakeInfinite()
z.DrawLine(pen1, 0, 0, Me.Size.Width, Me.Size.Height)
End Sub
pen1并z在程式開始時初始化如下:
Dim z As Graphics = CreateGraphics()
Dim pen1 = New Pen(Color.Black, 3)
我還嘗試對 x2 和 y2 使用不同的設定值,但除了使用Form1_paint.
uj5u.com熱心網友回復:
它與剪輯無關,與您呼叫的時間有關CreateGraphics()。在創建圖形時,表單尚未完全初始化,并且使用了不正確的大小。
當您使用 CreateGraphics() 或創建 Pen 時,您應該在完成后立即顯式 Dispose() 處理它們。這最好通過 Using 塊來完成:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Using z As Graphics = CreateGraphics()
Using pen1 = New Pen(Color.Black, 3)
z.DrawLine(pen1, 0, 0, Me.ClientSize.Width, Me.ClientSize.Height)
End Using
End Using
End Sub
但總的來說,以這種方式使用 CreateGraphics() 幾乎總是錯誤的方法。以這種方式繪制的線是臨時的。最小化表格并恢復它,該行將消失。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/426214.html
標籤:VB.net
