两种方法,一种是固定窗口大小,一种是控件在窗口大小改变时,自动按窗口位置进行改变;
以上为个人看法,手打很辛苦,希望采纳,谢谢您的支持.
谢谢您的支持,有任何疑问欢迎您再次通过此渠道提问,让大家共同解决,共同进步!
以上回答仅为"百度规则",没有任何违法行为,请楼主采纳,谢谢!
基本思路是在按钮的 MouseMove 事件中检测鼠标左键的状态,如果是按下就跟着移动按钮的位置.
按钮对象.left=rnd*100
按钮对象.top=rnd*100
把100这个值替换成实际窗体大小即可
Dim
a
Private
Sub
Timer1.Enabled
=
True
End
Form_Click()
False
Form_Load()
Timer1.Interval
①.00
Timer1_Timer()
If
Command1.Left
+
Command1.Width
Then
几乎找不到真正VB.NET的api,都是自己将VB的api改成VB.NET的api,我的理解是声明中对应输入是H的地方保留Long,其他的Long改成Integer,既然VB.NET连MSDN都找不到较全的api说明,不保证api的用法在VB.NET其他版本中适用.
Public Class Form1
Public My_MousePosition As Point
'定义光标的位置
'鼠标的隐藏
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Multiline = True
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)
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
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
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SetCursorPos(My_MousePosition.X, My_MousePosition.Y)
End Class
其中
的dwFlags的代码是
Const MOUSEEVENTF_MOVE = H1
Const MOUSEEVENTF_RIGHTUP = H10