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

Тема в разделе "Visual Basic", создана пользователем Adiost, 14 июн 2010.

Статус темы:
Закрыта.
  1. Adiost

    Adiost Гость

    Интересуюсь, как таскать форму за элемент? В форме отключен стиль окна
    Код (LotusScript):
    Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
    и нужно сделать так, что бы его можно было таскать за элемент, скажем, Panel1. В сети нашел код
    Код (LotusScript):
    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
    но он к сожалению не работает, как бы я его не насиловал. Может кто подсказать?
     
  2. etc

    etc Гость

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

    Adiost Гость

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

    etc Гость

    Дебажить пробовали?
     
  5. Adiost

    Adiost Гость

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

    etc Гость

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

    Adiost Гость

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

    etc Гость

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

    Adiost Гость

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

    etc Гость

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

    Adiost Гость

    как? :gifts:
     
  12. etc

    etc Гость

    Яж сказал как.
     
  13. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    у Panel1 искать события типа
     
  14. Adiost

    Adiost Гость

    А можно код? :rolleyes:
     
  15. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    какой код? ты за панель двигать хочешь, значит, у панели ставишь обработчики событий мыши (MouseDown, MouseMove) - те, которые писал выше.
     
  16. etc

    etc Гость

    Учиться надо.
     
  17. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    судя по названию imgMove, в оргинале должно было быть привязано к картинке

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

    Adiost Гость

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

    Tanya Гость

    Код (LotusScript):
    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

    Шутка )))
     
  20. etc

    etc Гость

    Товарищу нада 1 кнопка нажал и работает.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей