Страница: 1 |
Вопрос: Как узнать о смене активного окна в MDI программе? | Добавлено: 11.09.02 19:40 |
Автор вопроса: ![]() |
Hi All! Есть 2 вопроса по работе с окнами: 1. Как узнать о смене активного окна в MDI программе? 2. Можно ли одно из окон сделать особым - чтобы оно не фигурировало в меню окон, не становилось активтым но всякие кнопки на нем работали. Т.е. надо сделать что-то типа панели инструментов? Jury |
Ответы | Всего ответов: 6 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 170668998 Вопросов: 1 Ответов: 5 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 12.09.02 07:34 |
Чтобы получить активное окно, используй frmMDI.ActiveForm, где frmMDI - это родительская форма. Например, чтобы вставить текст из Буфера обмена в Textbox на активной в данный момент форме, используй следующий код:
Private Sub Paste() frmMDI.ActiveForm.Text1.SelText = Clipboard.GetText() End Sub где frmMDI - родительская форма, Text1 - наш Textbox |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 12 |
Профиль | Цитата | #2 | Добавлено: 12.09.02 12:59 |
Работать с активным окном я научился. Мне надо чтобы при смене активного окна в "особом" окне меня лось состояние кнопок и текстбоксов. Вериант с периодическим получением в цикле активного окна понятен. Но может есть какое событие, чтобы не крутить лишний цикл? Jury |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #3 | Добавлено: 12.09.02 13:14 |
Ты дочерние формы выгружаешь или просто скрываешь? Если выгружаешь то используй QueryUnload формы для всеч изменений. А если скрываешь то LostFocus,GotFocus прекрасно работают. Ловишь GotFocus, проверяешь какая форма и по ней грузи контроли, проверку лучше сделать жерез Select... Case. Удачи! |
Номер ответа: 4 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 12 |
Профиль | Цитата | #4 | Добавлено: 12.09.02 18:58 |
Что-то я не пойму. Судя по хэлпам мне надо ловить событие Если у меня есть массив Child форм Frm(i) то как и где мне ловить это событие? В Родительской форме Form1 или в каждой Child? Ьщжет я с синтаксисом что напутал - надо в скобки что-либо передавать? Jury |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #5 | Добавлено: 13.09.02 14:15 |
Конечно же дочерние окна ловить надо. Точенее одно. Прототип из которого создаеш остальные. А там уже проверяй индекс и реагируй на него соответственно. |
Номер ответа: 6 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 12 |
Профиль | Цитата | #6 | Добавлено: 16.09.02 15:02 |
То-ли я тупой, то ли... При попытке вставить пример: 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 |
|