powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как запретить перетаскивание формы?
16 сообщений из 16, страница 1 из 1
Как запретить перетаскивание формы?
    #34532361
GuestO1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно говоря... как запретить перетаскивание формы в excel?

Пробовал
Код: plaintext
1.
2.
3.
4.
5.
Private Sub UserForm_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Control As MSForms.Control, _
        ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal State As MSForms.fmDragState, _
        ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
  Cancel = True
  Effect = fmDropEffectNone
End Sub

...не срабатывает
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34532641
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Declare Function GetSystemMenu Lib "user32" _
                (ByVal hWnd As Long, _
                ByVal bRevert As Long) As Long

Private Declare Function RemoveMenu Lib "user32" _
                (ByVal hMenu As Long, _
                ByVal nPosition As Long, _
                ByVal wFlags As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
                (ByVal lpClassName As String, _
                ByVal lpWindowName As String) As Long

Private Const MF_BYPOSITION As Long = &H400&

Private Sub UserForm_Initialize()
    Dim hWnd As Long
    Dim i As Integer

    hWnd = FindWindow(vbNullString, Me.Caption)
    If hWnd <>  0  Then
        For i =  0  To  2 
            Call RemoveMenu(GetSystemMenu(hWnd,  0 &),  0 &, MF_BYPOSITION)
        Next
    End If
End Sub
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34532919
GuestO1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к сожалению на перемещение формы это никак не влияет...
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34533328
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GuestO1к сожалению на перемещение формы это никак не влияет...

Я проверил, влияет, и даже очень. Не сдвинуть.
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34533421
GuestO1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladConn GuestO1к сожалению на перемещение формы это никак не влияет...

Я проверил, влияет, и даже очень. Не сдвинуть.

Руки с ногами на отсечение.. Все как двигалось, так и двигается ((
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34534058
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, отсекать конечности мы повременим. Вы куда код поместили?
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34534420
GuestO1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В саму форму
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34536055
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не трудно, пришпильте ваш файл.
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34538792
GuestO1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
файл
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34539872
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GuestO1файл
У тебя Caption пустой, поэтому FindWindow не находит твою форму.
Попробуй замени строку
Код: plaintext
hWnd = FindWindow(vbNullString, Me.Caption)
на
Код: plaintext
1.
2.
3.
4.
If Val(Application.Version) <  9  Then
    hWnd = FindWindow("ThunderXFrame", Me.Caption)
Else
    hWnd = FindWindow("ThunderDFrame", Me.Caption)
End If
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34539983
GuestO1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PA GuestO1файл
У тебя Caption пустой, поэтому FindWindow не находит твою форму.
Попробуй замени строку
Код: plaintext
hWnd = FindWindow(vbNullString, Me.Caption)
на
Код: plaintext
1.
2.
3.
4.
If Val(Application.Version) <  9  Then
    hWnd = FindWindow("ThunderXFrame", Me.Caption)
Else
    hWnd = FindWindow("ThunderDFrame", Me.Caption)
End If



СПАСИБО!!! ОГРОМНОЕ!!!
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34553805
Фотография @TM@ROZчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moveable = false слабо?
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34555366
Guest11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@TM@ROZчегmoveable = false слабо?
Где ты у UserForm Moveable видел?
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34555537
Фотография @TM@ROZчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ёлки, плохо топик посмотрел :-)
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34556794
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GuestO1к сожалению на перемещение формы это никак не влияет...


А что мешает сделать форму без заголовка?
Или с АПИ функциями запрешать перемещение с GetCursorPos и SetCursorPos
...
Рейтинг: 0 / 0
Как запретить перетаскивание формы?
    #34558309
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...А что мешает сделать форму без заголовка?

Ну, наверно необходимость иметь его...

...Или с АПИ функциями запрешать перемещение с GetCursorPos и SetCursorPos...

Просим ваш АПИ код на рассмотрение.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как запретить перетаскивание формы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]