成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

vb.net線帽的簡(jiǎn)單介紹

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

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

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的武平網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(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方法來(lái)達(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)行效果:

VB.NET坐標(biāo)變換

Dim g As Graphics = PictureBox1.CreateGraphics

g.TranslateTransform(2, 2) ‘定義原點(diǎn)坐標(biāo)

g.ScaleTransform(1, -1) ’X軸不變,反轉(zhuǎn)Y軸

以PictureBox1中(2,2)點(diǎn)為新的原點(diǎn)(0,0)

向右為X軸正方向 向上為Y軸正方向

VB.NET 簡(jiǎn)單多線程

多線程一般是不推薦用的,因?yàn)榫€程之間如果有共享資源的話會(huì)引起競(jìng)爭(zhēng),需要加鎖處理;而且線程間沒有時(shí)序關(guān)系,所以你在調(diào)試中可能會(huì)出現(xiàn)異步處理結(jié)束順序與開始處理順序不一致的情況(我在調(diào)試中已經(jīng)發(fā)現(xiàn)該問題)。

針對(duì)你提出的這個(gè)問題,采用了多線程處理,利用的是BackgroundWorker也就是異步處理控件進(jìn)行了處理。

代碼已經(jīng)經(jīng)過調(diào)試通過。歡迎交流,如有問題,留下QQ或其他聯(lián)系方式。

代碼如下,并附程序截圖。

‘---------------------------------------------------

Imports?System.ComponentModel?'導(dǎo)入異步控件命名空間

Public?Class?Form1

Private?howmany?As?Integer?=?10

Private?AnalysisNumber(0?To?howmany?-?1)?As?BackgroundWorker

Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click

ListBox1.Items.Clear()

creatNewBackgroundWorker()

addHandle()

startWork()

End?Sub

Private?Sub?creatNewBackgroundWorker()

For?i?As?Integer?=?0?To?AnalysisNumber.Length?-?1

AnalysisNumber(i)?=?New?BackgroundWorker

Next

End?Sub

Private?Sub?addHandle()

For?i?As?Integer?=?0?To?AnalysisNumber.Length?-?1

AddHandler?AnalysisNumber(i).DoWork,?AddressOf?AnalysisNumber_DoWork

AddHandler?AnalysisNumber(i).RunWorkerCompleted,?AddressOf?AnalysisNumber_RunWorkerCompleted

Next

End?Sub

Private?Sub?startWork()

For?i?As?Integer?=?0?To?9

Dim?temp(0?To?9)?As?Integer

For?j?As?Integer?=?1?To?10

temp(j?-?1)?=?10?*?i?+?j

Next

AnalysisNumber(i).RunWorkerAsync(temp)

Next

End?Sub

Private?Sub?AnalysisNumber_DoWork(ByVal?sender?As?Object,?ByVal?e?As?System.ComponentModel.DoWorkEventArgs)

Dim?data?As?Integer()

data?=?CType(e.Argument,?Integer())

Dim?temp?As?Integer

For?i?As?Integer?=?0?To?data.Length?-?1

temp?=?data(i)

data(i)?=?temp?*?temp

Next

e.Result?=?data

End?Sub

Private?Sub?AnalysisNumber_RunWorkerCompleted(ByVal?sender?As?Object,?ByVal?e?As?System.ComponentModel.RunWorkerCompletedEventArgs)

Dim?data?As?Integer()

data?=?CType(e.Result,?Integer())

For?i?As?Integer?=?0?To?data.Length?-?1

ListBox1.Items.Add(data(i))

Next

End?Sub

End?Class

vb.net的優(yōu)點(diǎn)是什么?

VB.NET是基于.NET框架的完全對(duì)向?qū)ο蟮木幊陶Z(yǔ)言,而vb 6.0只是半面向?qū)ο蟮恼Z(yǔ)言,使用vb.net可以編制出功能更加強(qiáng)大的windows程序。現(xiàn)在,我們把vb.net和vb 6.0做一下比較,看看vb.net對(duì)比vb 6.0有著什么樣的特性和優(yōu)點(diǎn)。 1.在vb 6.0中,創(chuàng)建對(duì)象的時(shí)候,需要等這個(gè)對(duì)象創(chuàng)建完畢后,再另外調(diào)用一個(gè)獨(dú)立的方法對(duì)其進(jìn)行初始化。在vb.net中, 可以利用構(gòu)造函數(shù)為對(duì)象賦初值,這樣就不需要進(jìn)行煩瑣的調(diào)用賦初值了。構(gòu)造函數(shù)的使用,簡(jiǎn)化了編碼的過程和出錯(cuò)的機(jī)會(huì)。 2.vb.net編寫線程的能力比vb 6.0有很大的增強(qiáng)。 3.在vb 6.0中,需要首先聲明一個(gè)變量,然后才能對(duì)其賦值,這樣就需要寫兩行代碼。在vb.net中,可以 使用初始化函數(shù)將這兩個(gè)步驟合并在一行代碼中完成,這個(gè)似乎微小的改進(jìn),提供了更少、更簡(jiǎn)單、更易于維護(hù)的代碼。 4.vb.net基于.NET框架,開發(fā)者可以快速的可視化開發(fā)網(wǎng)絡(luò)應(yīng)用程序、網(wǎng)絡(luò)服務(wù)、Windows應(yīng)用程序和服務(wù)器端組件。 5.因?yàn)関b.net是基于.NET框架的,可以與其它.NET語(yǔ)言協(xié)同工作。 6.在vb.net中,通過Web窗體及ADO.NET,開發(fā)者可以快速開發(fā)可擴(kuò)展的Web站點(diǎn)。 如果你能進(jìn)一步學(xué)習(xí)vb.net,你會(huì)發(fā)現(xiàn)更多的新特性和優(yōu)點(diǎn)

vb.net控件的BorderStyle設(shè)置為FixedSingle會(huì)出現(xiàn)黑線邊框,可以更改他的顏色嗎 比如改成紅色線邊框

要么重寫這個(gè)控件的 OnPaint 事件,判斷 BorderStyle 屬性為 FixedSingle 的時(shí)候自繪其他顏色。

要么不重寫,把 BorderStyle 設(shè)為 None,直接在這個(gè)控件的 Paint 事件里自繪邊框,例如:

Private?Sub?Label1_Paint(sender?As?Object,?e?As?PaintEventArgs)?Handles?Label1.Paint

e.Graphics.DrawRectangle(Pens.Red,?New?Rectangle(Label1.DisplayRectangle.X,?Label1.DisplayRectangle.Y,?Label1.DisplayRectangle.Width?-?1,?Label1.DisplayRectangle.Height?-?1))

End?Sub

運(yùn)行效果:

VB.net中如何在picturebox畫線,有什么函數(shù)?

Dim b As New Bitmap(PictureBox1.Width, PictureBox1.Height)

Dim g As Graphics = Graphics.FromImage(b)

g.Clear(Color.White)

Dim p As New Pen(Color.Black)

p.EndCap = Drawing2D.LineCap.ArrowAnchor

g.DrawLine(p, 30, PictureBox1.Height - 30, 30, 30)

g.DrawLine(p, 30, PictureBox1.Height - 30, PictureBox1.Width - 30, PictureBox1.Height - 30)

Dim i As Integer

Dim bs As New SolidBrush(Color.Green)

Dim po As New Point

po.X = 0

po.Y = PictureBox1.Height - 35

For i = 700 To 1000 Step 50

g.DrawString(i, Me.Font, bs, po.X, po.Y)

g.DrawLine(p, po.X + 28, po.Y + 5, po.X + 30, po.Y + 5)

po.Y -= (PictureBox1.Height - 100) / 6

Next

po.X = 30

po.Y = PictureBox1.Height - 30

For i = 0 To 40 Step 5

g.DrawString(i, Me.Font, bs, po.X, po.Y + 5)

g.DrawLine(p, po.X, po.Y + 2, po.X, po.Y)

po.X += (PictureBox1.Width - 100) / 8

Next

PictureBox1.Image = b

分享名稱:vb.net線帽的簡(jiǎn)單介紹
網(wǎng)頁(yè)地址:http://jinyejixie.com/article8/hejgip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、自適應(yīng)網(wǎng)站、軟件開發(fā)微信公眾號(hào)、電子商務(wù)、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司