Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 5 ]
- Зарегистрирован: 10.01.2010
- Сообщений: 63
Тема: UserForm теряет фокус при открытии другого окна
Проблема: Userform (установлено свойство showmodal = false, дабы можно было работать с текстом в фоне) при открытии другого документа по кнопке на форме теряется. Как можно вернуть форму в фокус?
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: UserForm теряет фокус при открытии другого окна
Показать ещё раз:
Private Sub CommandButton1_Click()
UserForm2.Show 0
Me.Show
End Sub
Лучше день потерять — потом за пять минут долететь!
- Зарегистрирован: 10.01.2010
- Сообщений: 63
Re: UserForm теряет фокус при открытии другого окна
viter.alex пишет:Показать ещё раз:
Была же такая мысль! Спасибо.
И вдогонку: я тут излазил все свойства userform, но не нашел возможности превратить ее в самостоятельное окошко с кнопочками свернуть/развернуть. Вероятно, это касается только "полноценных", скомпилированных VB приложений? В VB6, по крайней мере, помнится, это задавалось.
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: UserForm теряет фокус при открытии другого окна
Да, стандартной такой возможности нет, но можно сделать самому при помощи WinAPI
В модуль:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const GWL_STYLE = (-16)
Public Sub ChangeWindow(f As UserForm)
Dim hwnd As Long
Dim retval As Long
hwnd = FindWindow("ThunderDFrame", f.Caption)
If hwnd <> 0 Then
retval = SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
End If
If retval = 0 Then MsgBox "Fail"
End Sub
В форме:
Private Sub UserForm_Initialize()
Call ChangeWindow(Me)
End Sub
Лучше день потерять — потом за пять минут долететь!
- Зарегистрирован: 10.01.2010
- Сообщений: 63
Re: UserForm теряет фокус при открытии другого окна
Вот это да! Огромное спасибо.
Сообщений [ 5 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
UserForm теряет фокус при открытии другого окна
Для всех, кто желает совершенствоваться, расти и не любит терять времени понапрасну, предлагаем замечательную шпаргалку по Ворду – форум Ворд Эксперт. На портале о Microsoft Office Word вы узнаете про: как поставить галочку в пустое поле.
Что приятно, это русский форум, очень теплый, там вы не найдете заумных слов и жутких сленговых терминов, в которых без Билла Гейтса не разберешься. На портале о Microsoft Office Word вы узнаете про: заготовки для книг в ворде.
Все просто и понятно.
Заходя в дом - на форум, вы тут же оказываетесь в «прихожей» - разделе, где даются ответы на основные вопросы, как по самому Ворду, так и по устройству форума и сайта. На портале о Microsoft Office Word вы узнаете про: word автоматически включаются исправления в измененном документе.
Там же вам предложат почитать что-нибудь интересное (про Ворд, конечно, за этим вы и пришли).
А в «гостиной» вы сможете обсудить программу, вашу версию, ее настройки, особенности работы, форматирование и многое другое. На портале о Microsoft Office Word вы узнаете про: как сделать в ворде по алфавиту.
Вас научат оптимизировать эксплуатацию Microsoft Word с помощью макросов. Это совсем не сложно.
В «столовой» форума подаются готовые блюда – оригинальные решения той либо иной проблемы, макросы и многое другое. Наш сайт о Microsoft Office Word даст ответ про: открытка с новым годом 2013 в формате ворда.
Если хотите заказать «экзотическое блюдо», добро пожаловать «на кухню» - раздел «заявки на разработку». Наш сайт о Microsoft Office Word даст ответ про: ссылки на пункты в ворд.
Оставьте в нем описание своей проблемы, и вам помогут.
Что такое «курилка» объяснять, наверно, никому не надо. На портале о Microsoft Office Word вы узнаете про: перевернуть таблицу в ворде на 180.
Заходите и сами все увидите. А пожелания можно оставлять в соответствующем разделе.