Страница: 1 |
Страница: 1 |
Вопрос: Позволить пользователю перемещать кнопки по форме?
Добавлено: 20.03.06 15:00
Автор вопроса: Роман
Как Позволить пользователю перемещать кнопки по форме в VB.Net?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #1
Добавлено: 20.03.06 21:21
Drag and Drop или OLE DnD
Номер ответа: 2
Автор ответа:
mich
ICQ: 261800349
Вопросов: 19
Ответов: 148
Web-сайт:
Профиль | | #2
Добавлено: 20.03.06 22:18
а мона вот так:
Private MouseOffset As Point
Private IsMouseDown As Boolean = False
Private IsMouseResize As Boolean = False
Private Sub btnOk_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btnOk.MouseDown
If e.Button = MouseButtons.Left Then
If e.X > btnOk.Width - 15 Then
btnOk.Cursor = Windows.Forms.Cursors.SizeWE
IsMouseResize = True
Else
btnOk.Cursor = Windows.Forms.Cursors.SizeAll
IsMouseDown = True
End If
MouseOffset.X = e.X
MouseOffset.Y = e.Y
End If
End Sub
Private Sub btnOk_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btnOk.MouseUp
IsMouseDown = False
IsMouseResize = False
btnOk.Cursor = Windows.Forms.Cursors.Default
End Sub
Private Sub btnOk_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btnOk.MouseMove
If IsMouseDown Then
btnOk.Location = New Point( _
btnOk.Location.X + e.X - MouseOffset.X, _
btnOk.Location.Y + e.Y - MouseOffset.Y)
ElseIf IsMouseResize Then
btnOk.Width = e.X + 10
End If
End Sub
Номер ответа: 3
Автор ответа:
mich
ICQ: 261800349
Вопросов: 19
Ответов: 148
Web-сайт:
Профиль | | #3
Добавлено: 20.03.06 22:23
или на API:
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Declare Sub ReleaseCapture Lib "user32" ()
Const WM_NCLBUTTONDOWN As Integer = &HA1
Const HTCAPTION As Integer = 2
Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
If e.Button = MouseButtons.Left Then
ReleaseCapture()
SendMessage(Me.Button1.Handle.ToInt32, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End If
End Sub