Страница: 1 |
Hi All! Есть 2 вопроса по работе с окнами: 1. Как узнать о смене активного окна в MDI программе? 2. Можно ли одно из окон сделать особым - чтобы оно не фигурировало в меню окон, не становилось активтым но всякие кнопки на нем работали. Т.е. надо сделать что-то типа панели инструментов? Jury
Чтобы получить активное окно, используй frmMDI.ActiveForm, где frmMDI - это родительская форма. Например, чтобы вставить текст из Буфера обмена в Textbox на активной в данный момент форме, используй следующий код: Private Sub Paste() frmMDI.ActiveForm.Text1.SelText = Clipboard.GetText() End Sub где frmMDI - родительская форма, Text1 - наш Textbox Работать с активным окном я научился. Мне надо чтобы при смене активного окна в "особом" окне меня лось состояние кнопок и текстбоксов. Вериант с периодическим получением в цикле активного окна понятен. Но может есть какое событие, чтобы не крутить лишний цикл? Jury Ты дочерние формы выгружаешь или просто скрываешь? Если выгружаешь то используй QueryUnload формы для всеч изменений. А если скрываешь то LostFocus,GotFocus прекрасно работают. Ловишь GotFocus, проверяешь какая форма и по ней грузи контроли, проверку лучше сделать жерез Select... Case. Удачи! Что-то я не пойму. Судя по хэлпам мне надо ловить событие Если у меня есть массив Child форм Frm(i) то как и где мне ловить это событие? В Родительской форме Form1 или в каждой Child? Ьщжет я с синтаксисом что напутал - надо в скобки что-либо передавать? Jury Конечно же дочерние окна ловить надо. Точенее одно. Прототип из которого создаеш остальные. А там уже проверяй индекс и реагируй на него соответственно. То-ли я тупой, то ли... При попытке вставить пример: Public Sub WindowEvents_WindowActivated(ByVal GotFocus As EnvDTE.Window, ByVal LostFocus As EnvDTE.Window) Handles WindowEvents.WindowActivated MsgBox("test") End Sub Выдается: D:\Oscilloscope\NewProject\MultiScope\MultiScope\Form1.vb(91): Type 'EnvDTE.Window' is not defined. D:\Oscilloscope\NewProject\MultiScope\MultiScope\Form1.vb(91): Handles clause requires a WithEvents variable. - это на тему WindowEvents.WindowActivated Так что даже не знаю куда копать. Jury Страница: 1 |
Вопрос: Как узнать о смене активного окна в MDI программе?
Добавлено: 11.09.02 19:40
Автор вопроса: Jury
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
LightKnight
ICQ: 170668998
Вопросов: 1
Ответов: 5
Web-сайт:
Профиль | | #1
Добавлено: 12.09.02 07:34
Номер ответа: 2
Автор ответа:
Jury
Вопросов: 14
Ответов: 12
Профиль | | #2
Добавлено: 12.09.02 12:59
Номер ответа: 3
Автор ответа:
MAGNUS
Вопросов: 12
Ответов: 430
Профиль | | #3
Добавлено: 12.09.02 13:14
Номер ответа: 4
Автор ответа:
Jury
Вопросов: 14
Ответов: 12
Профиль | | #4
Добавлено: 12.09.02 18:58
WindowEvents_WindowActivated()
но у меня это что-то не получает
Номер ответа: 5
Автор ответа:
MAGNUS
Вопросов: 12
Ответов: 430
Профиль | | #5
Добавлено: 13.09.02 14:15
Номер ответа: 6
Автор ответа:
Jury
Вопросов: 14
Ответов: 12
Профиль | | #6
Добавлено: 16.09.02 15:02