分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計 其他編程語言
專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)旌德免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
問題描述:
VB6中的form1.circle (100,200),rgb(0,255,0)的語句如何在VB中使用啊?
急用?。。。。。。。?!
解析:
VB與VB不同。
VB已經(jīng)有專門繪圖的類。
可以定義筆刷然后用Drawing類中的方法繪制。
Private Sub DrawEllipse()
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
formGraphics.DrawEllipse(myPen, New Rectangle(0,0,200,300))
myPen.Dispose()
formGraphics.Dispose()
End Sub
Private Sub DrawRectangle()
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
formGraphics.DrawRectangle(myPen, New Rectangle(0,0,200,300))
myPen.Dispose()
formGraphics.Dispose()
End Sub
繪制和數(shù)據(jù)分離,就是說,Paint 事件永遠是用來繪制的,具體繪制什么東西(也就是繪制的數(shù)據(jù),如半徑為4的圓),有數(shù)據(jù)決定,MouseClick 可以更改一些參數(shù),然后由Paint 繪制:
MouseClick 事件里,重繪窗體,即:
int r = 0, x = 0, y = 0;
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
r = 10;
x = e.X;
y = e.Y;
this.Invalidate();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
// 繪制一個r半徑圓
e.Graphics.DrawEllipse(new Pen(Color.Red), x, y, r, r);
}
補充:
在 MouseClick 事件中去調(diào)用Form 的 Paint 事件,那么參數(shù)要如何傳遞?
參數(shù)是個全局變量,類似上面的r、x、y等,不是由e傳過去的,
上述代碼是c#的,vb.net和c#一樣,都是用的fcl類庫,你改一下就可以了,
代碼寫起來可能比較麻煩,給你個思路,就是用GraphicsPath來繪制,然后通過繪制目標(biāo)的鼠標(biāo)移動事件來獲取當(dāng)前鼠標(biāo)在繪制目標(biāo)中的實際位置,再通過GraphicsPath的IsVisible()方法來確認鼠標(biāo)是否包含在GraphicsPath中。
DrawLine直線比較容易處理,只要得到Line的坐標(biāo)點,然后比較當(dāng)前鼠標(biāo)坐標(biāo)就好。
t.Suspend()這是一個暫停的線程。是一個異步方法。
t.Sleep,我看到了一個同步方法。必須等待超過了該方法的運行,是繼續(xù)進行到下一步驟。
差不多了,from.show的from.showdiaglog的區(qū)別!
疑問,我沒有找到原因。
'繪制圖形的三步曲
'1,獲得一個Graphics對象
Dim MyGraphics As Graphics
MyGraphics = Me.CreateGraphics
'2,定義一個Pen對象,用于繪制圖形(輪廓線)
Dim MyPen As New Pen(Color.Black)
'3,定義一個Brush對象,用于填充圖形(如果需要填充的話)
Dim MyBrush As New SolidBrush(Color.Orange)
MyGraphics.FillEllipse(MyBrush, 200, 200, 100, 100) '繪制一個實心圓,該圓在:直線x=200,y=200,x=200+100,y=200+100所劃的矩形區(qū)域內(nèi)
MyGraphics.DrawEllipse(MyPen, 200, 200, 100, 100) '繪制一個空心圓,該圓在:直線x=200,y=200,x=200+100,y=200+100所劃的矩形區(qū)域內(nèi)
首先引入System.Drawing和System.Drawing.Drawing2D
自己看得了
這里面說的有的可以填充的,是g.FillXXXX