軌跡球vb點虐 軌跡球原理

VB.NET我要用鼠標軌跡畫一個矩形框 然后選中控件。就像星際和魔獸爭霸里對部隊單位的選中一樣~等大神回答

這個類繼承自Panel,把它加到你的項目里面,先運行一下,然后從工具箱里把它拖到窗體上,然后再向里面添加其它控件就可以了,支持Shift加選,Alt減選

寧陽網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

Imports?System.Linq

Imports?System.Collections

Public?Class?MyPanel

Inherits?Panel

'?選擇模式,相交還是包含

Enum?SelectMode

Intersects

Contains

End?Enum

Dim?down?As?New?Point(-1,?-1)

Dim?rect?As?Rectangle

Dim?selected?As?New?List(Of?Control)

Dim?editting?As?IEnumerable(Of?Control)

Dim?mode?As?SelectMode?=?SelectMode.Contains

Dim?shift,?alt?As?Boolean

Public?Sub?New()

Me.DoubleBuffered?=?True

End?Sub

Protected?Overrides?Sub?OnMouseDown(e?As?MouseEventArgs)

MyBase.OnMouseDown(e)

down?=?e.Location

editting?=?selected.ToArray().ToList()

OnMouseMove(e)

End?Sub

Protected?Overrides?Sub?OnMouseMove(e?As?MouseEventArgs)

MyBase.OnMouseMove(e)

If?e.Button?=?Windows.Forms.MouseButtons.Left?Then

Dim?loc?As?New?Point(Math.Min(down.X,?e.X),?Math.Min(down.Y,?e.Y))

Dim?size?As?New?Size(Math.Abs(down.X?-?e.X),?Math.Abs(down.Y?-?e.Y))

rect?=?New?Rectangle(loc,?size)

Dim?cs?As?New?List(Of?Control)

For?Each?c?In?Controls

cs.Add(c)

Next

Dim?a?=?cs.Where(Function(n?As?Control)?(mode?=?SelectMode.Contains?And?rect.Contains(n.Bounds))?Or?(mode?=?SelectMode.Intersects?And?rect.IntersectsWith(n.Bounds)))

If?shift?Then?editting?=?a.Union(selected)?Else?If?alt?Then?editting?=?selected.Except(a)?Else?editting?=?a

Invalidate()

End?If

End?Sub

Protected?Overrides?Sub?OnMouseUp(e?As?MouseEventArgs)

MyBase.OnMouseUp(e)

down?=?New?Point(-1,?-1)

selected?=?editting.ToList()

editting?=?Nothing

Invalidate()

End?Sub

Protected?Overrides?Function?ProcessKeyPreview(ByRef?m?As?Message)?As?Boolean

Dim?KeyCode?As?Keys?=?CInt(m.WParam)?And?CInt(Keys.KeyCode)

Dim?d?As?Boolean

If?m.Msg?=?H100?Or?m.Msg?=?H104?Then?d?=?True?Else?If?m.Msg?=?H101?Or?m.Msg?=?H105?Then?d?=?False?Else?Return?MyBase.ProcessKeyPreview(m)

If?KeyCode?=?Keys.ShiftKey?Then

shift?=?d

ElseIf?KeyCode?=?Keys.Menu?Then

alt?=?d

End?If

Return?MyBase.ProcessKeyPreview(m)

End?Function

Protected?Overrides?Sub?OnPaint(e?As?PaintEventArgs)

MyBase.OnPaint(e)

For?Each?c?As?Control?In?IIf(editting?Is?Nothing,?selected,?editting)

e.Graphics.DrawRectangle(New?Pen(Color.Gray)?With?{.DashStyle?=?Drawing2D.DashStyle.DashDot},?c.Left?-?1,?c.Top?-?1,?c.Width?+?1,?c.Height?+?1)

Next

If?(down.X??0)?Then?e.Graphics.DrawRectangle(New?Pen(Color.Gray)?With?{.DashStyle?=?Drawing2D.DashStyle.DashDot},?rect)

End?Sub

End?Class

VB點虐 里怎么實現(xiàn)氣泡在窗體中隨機移動?

可以建立一個方向向量用來存儲氣泡運動的方向(方向值每到一定時間隨機產(chǎn)生),再定義一個表示速度的變量(如果要的是均速運動速度值就不變,否則也可以隨機產(chǎn)生)。再用速度和方向值改變氣泡位置。

我可以做個例子(qq:359394386),但分不能太低。

vb點虐 利用NotifyIcon實現(xiàn)最小化到系統(tǒng)托盤,但是收縮到軌跡到開始菜單

添加托盤圖標控件,并設(shè)置好其Icon屬性,然后添加如下代碼:

Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

e.Cancel = True

Me.Hide()

End Sub

這樣實現(xiàn)了點關(guān)閉,進入托盤,如果點最小化進入托盤:

'窗體最小化時候隱藏窗體,

Private Sub MainForm_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged

If Me.WindowState = FormWindowState.Minimized Then

Me.Hide()

Me.ShowInTaskbar = False

End If

End Sub

vb點虐 動畫

可以啊

me_paint 事件中添加畫圖語句

me.creategraphic.drawellipse(pen,center,r,r)

center 是圓心位置point 類型數(shù)據(jù)

添加一個timer控件 控制動畫

在控件的tick事件中添加語句

center.x+=1

center.y=center.x * 10+50

me.invalidate '(以一次函數(shù)y=10x+50運動,可以換成你需要的運動軌跡)

網(wǎng)頁標題:軌跡球vb點虐 軌跡球原理
文章網(wǎng)址:http://bm7419.com/article18/ddejcdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航企業(yè)網(wǎng)站制作、做網(wǎng)站標簽優(yōu)化營銷型網(wǎng)站建設(shè)、域名注冊

廣告

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

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