• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Таскание формы за элемент

  • Автор темы Adiost
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Adiost

Интересуюсь, как таскать форму за элемент? В форме отключен стиль окна
Код:
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
и нужно сделать так, что бы его можно было таскать за элемент, скажем, Panel1. В сети нашел код
Код:
Public BarX
Public BarY

Private Sub imgMove_MouseDown(Button As Integer, Shift As Integer, _
X As Single, Y As Single) 
If Button = 1 Then BarY = Y: BarX = X 
End Sub

Private Sub imgMove_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)

If Button = 1 Then 
frmMain.Top = frmMain.Top + Y - BarY
frmMain.Left = frmMain.Left + X - BarX
end if 

End Sub
но он к сожалению не работает, как бы я его не насиловал. Может кто подсказать?
 
E

etc

Всетаки у вэбэ странный синтаксис.
 
A

Adiost

etc, он элементарный :gifts:
Но для реализации некоторых идей надо хорошо пораскинуть мозгами... В случае с моей идеей я мозги еще туда куда надо не закинул D:
 
A

Adiost

Вы про тот код? Да ошибок нет, он попросту не работает. Принцип я его понял, разве что не знаю, что есть "Button". То что он объявлен, это понятно, но что задает его значение? Если есть код
Код:
If Button = 1
значит что-то задает значение этому баттону. Что?
 
E

etc

Button это параметер, выставляем его вызывающая функция, это не интересно.
Интересно заходит ли в ваши обработчики и как они работают.
 
A

Adiost

etc
Да не работает вообще. Пытаюсь таскать элемент, в логе тихо.
 
E

etc

Обработчики привязаны? или просто код копипастили?
 
A

Adiost

Я не очень опытен, честно сказать... Код тупо копипастил, но ошибок вроде никаких нету.
Кстати, забыл сказать, работаю в VB10
 
E

etc

Надо привязать, в дизайнере в свойствах важей картинки указать обработчики.
 
H

hosm

какой код? ты за панель двигать хочешь, значит, у панели ставишь обработчики событий мыши (MouseDown, MouseMove) - те, которые писал выше.
 
H

hosm

судя по названию imgMove, в оргинале должно было быть привязано к картинке

Добавлено: может ли панель обработать эти события - смотри сам)
 
A

Adiost

Только теперь сообразил. С обработчиками все в порядке, настроил под себя.
В любом случае, думаю, должен же быть более простой вариант... Тот код скорее больше подходит для VB6, а тут уж .NET, не может быть так громоздко.
 
T

Tanya

Код:
Private Sub Panel1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
BarX = e.X
BarY = e.Y
End If
End Sub


Private Sub Panel1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.Top = Me.Top + e.Y - BarY
Me.Left = Me.Left + e.X - BarX
End If
End Sub

Более простой вариант:
Me.ТаскатьФормуЗаЭлемент = True

Шутка )))
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!