兩種方法,一種是固定窗口大小,一種是控件在窗口大小改變時,自動按窗口位置進行改變;
創新互聯建站從2013年開始,先為鶴山等服務建站,鶴山等地企業,進行企業商務咨詢服務。為鶴山企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
以上為個人看法,手打很辛苦,希望采納,謝謝您的支持。
謝謝您的支持,有任何疑問歡迎您再次通過此渠道提問,讓大家共同解決,共同進步!
以上回答僅為“百度規則”,沒有任何違法行為,請樓主采納,謝謝!
基本思路是在按鈕的 MouseMove 事件中檢測鼠標左鍵的狀態,如果是按下就跟著移動按鈕的位置。
按鈕對象.left=rnd*100
按鈕對象.top=rnd*100
把100這個值替換成實際窗體大小即可
比如有3個按鈕,1,2,3,3在1,2之間。
取得1按鈕的右邊位置,left屬性+width屬性,2按鈕的左位置,就是left屬性。
再定位3的left就可以了。
Dim
a
Private
Sub
Command2_Click()
Timer1.Enabled
=
True
End
Sub
Private
Sub
Form_Click()
Timer1.Enabled
=
False
End
Sub
Private
Sub
Form_Load()
Timer1.Interval
=
100
a
=
20
End
Sub
Private
Sub
Timer1_Timer()
If
Command3.Left
Command1.Left
+
Command1.Width
Then
a
=
20
If
Command3.Left
+
Command3.Width
Command2.Left
Then
a
=
-20
Command3.Left
=
Command3.Left
+
a
End
Sub
幾乎找不到真正VB.NET的api,都是自己將VB的api改成VB.NET的api,我的理解是聲明中對應輸入是H的地方保留Long,其他的Long改成Integer,既然VB.NET連MSDN都找不到較全的api說明,不保證api的用法在VB.NET其他版本中適用。
給你個好玩的例子,包括鼠標的隱藏(Ctrl_↓)、顯示(Ctrl_↑),移動、點擊
在Form1上放上2個TextBox,其中TextBox1.Multiline = True,并且面積大些,2個Button,運行后在TextBox1中點擊一下會記錄位置,移開鼠標,點擊移動或點擊Button,可模擬在TextBox1中的點擊
Public Class Form1
Public My_MousePosition As Point
'模擬鼠標移動、點擊
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
'定義光標的位置
Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Integer, ByVal y As Integer) As Integer
'鼠標的隱藏
Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Integer) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Multiline = True
Button1.Text = "點擊"
Button2.Text = "移動"
Me.KeyPreview = True
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.Control And e.KeyCode = Keys.Down Then ShowCursor(0)
If e.Control And e.KeyCode = Keys.Up Then ShowCursor(1)
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
TextBox2.Text = MousePosition.X " " MousePosition.Y
End Sub
Private Sub TextBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseClick
My_MousePosition = MousePosition
TextBox1.Text = My_MousePosition.X " " My_MousePosition.Y vbCrLf
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SetCursorPos(My_MousePosition.X, My_MousePosition.Y)
mouse_event(H2, 0, 0, 0, 0)
mouse_event(H4, 0, 0, 0, 0)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SetCursorPos(My_MousePosition.X, My_MousePosition.Y)
End Sub
End Class
其中
mouse_event Lib "user32" (ByVal dwFlags As Long
的dwFlags的代碼是
Const MOUSEEVENTF_LEFTDOWN = H2
Const MOUSEEVENTF_LEFTUP = H4
Const MOUSEEVENTF_MIDDLEDOWN = H20
Const MOUSEEVENTF_MIDDLEUP = H40
Const MOUSEEVENTF_MOVE = H1
Const MOUSEEVENTF_ABSOLUTE = H8000
Const MOUSEEVENTF_RIGHTDOWN = H8
Const MOUSEEVENTF_RIGHTUP = H10
網站題目:vb.net改變按鈕位置,vb控件在窗體上的位置
分享路徑:http://m.kartarina.com/article34/hegise.html
成都網站建設公司_創新互聯,為您提供做網站、網站改版、品牌網站制作、小程序開發、網站維護、面包屑導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯