|
|
|
Всплывающие меню
|
|||
|---|---|---|---|
|
#18+
Интерфейс - MDI. Из одной из форм вызывается контекстное меню MDI формы. Как изменить одно из полей на форме, чтобы не открылось еще одно дочернее окно (вызывается Form_Load). Код реакции следующий: Private Sub mnuLabelChange_Click() Dim strCaption As String strCaption = "бла-бла" <...>.lblFields(lblFieldPos) = strCaption ' вот тут затык - вызывает Load - новое окно End Sub Вместо <...> применялись: fForm1, Me.fForm1, fMainForm.fForm1 Private Sub mnuLabelChange_Click() находится в коде формы frmMain. Окно дочерней формы определено в frmMain: Dim fForm1 As New frmForm1 Set fForm1 = New frmForm1 Set fForm1.fMainForm = Me а fMainForm - MDI форма, определенная в модуле: Set fMainForm = New frmMain fMainForm.Show Реализация меню на форме fForm1 не предлагать, хотелось бы управлять существующей формой. Точнее, разобратся с механизмом обработки форм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 19:14:32 |
|
||
|
Всплывающие меню
|
|||
|---|---|---|---|
|
#18+
очень похоже, что вот этот код Код: plaintext 1. 2. Где этот код находится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 11:27:12 |
|
||
|
Всплывающие меню
|
|||
|---|---|---|---|
|
#18+
Хотите работать с контекстным меню для MDI-Child формы? Есть вариант это сделать не используя меню MDI-Parent формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 12:06:29 |
|
||
|
Всплывающие меню
|
|||
|---|---|---|---|
|
#18+
Hibernateочень похоже, что вот этот код Код: plaintext 1. 2. Где этот код находится? Как указано выше, он находится в форме frmMain (MDI) и не обрабатывается (по трасировке не попадает туда). Такая реализация кода работает без проблем (не создается еще один экземпляр окна), если вызывающее окно не основное (в смысле не MDI). Вообще как правильно ловить фокусы окон. Н-р, если созданы два одинаковых окна, как указано выше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 12:02:23 |
|
||
|
Всплывающие меню
|
|||
|---|---|---|---|
|
#18+
WorobjoffХотите работать с контекстным меню для MDI-Child формы? Есть вариант это сделать не используя меню MDI-Parent формы. Это как? Создавая в отдельной форме собственное меню? Во-первых, у меня при этом исчезает главное (MDI-формы) меню, что не есть гуд, поскольку нужно это меню, во-вторых, для каждого окна придется делать однотипные меню, что увеличивает код и запутывает. Объясните Ваше предложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 12:12:47 |
|
||
|
Всплывающие меню
|
|||
|---|---|---|---|
|
#18+
vin_aleksОбъясните Ваше предложение. Вот как можно обойтись без WinAPI: Создаем UserControl специально для этой MDI-Child формы. На нем создаем меню. Пишем Event Код: plaintext Код: plaintext 1. 2. Код: plaintext 1. 2. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:23:58 |
|
||
|
Всплывающие меню
|
|||
|---|---|---|---|
|
#18+
WorobjoffПишем обработчики пунктов меню Код: plaintext 1. 2. Код: plaintext 1. 2. А причем API к появлению еще одного окна формы (см. первый пост -> Load)? Где в приведенном мной коде ошибка? Будет ли Ваш обработчик изменять поле на форме или же откроет новое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 15:48:55 |
|
||
|
Всплывающие меню
|
|||
|---|---|---|---|
|
#18+
Если отвечать на основной вопрос, то: 1. Событие Form_Load НЕ используем если хотим обращаться напрямую к контролоам на frmXXX. А саму форму держим постоянно подгруженной меняя только видимость ее. Т.е. обращение к ЛЮБОМУ контролу на форме вызывает событие Form_Load (если она еще не была загружена). 2. в MDIForm надо опеределить переменную так (примерно так): Код: plaintext 1. 2. 3. Если все же надо где-то выполнять код связанный с активизацией этой формы, тогда пишем процедуру типа Show_ME(параметры....) в frmXXX. И уже в этой процедуре управдяем видмостью ее. 4. Если надо использовать одинаковые пункты меню к любой форме которя активна в д.момент, пользуемся свойством ActveForm 5. Управлять состоянием контролов еще незагруженной формы можно но трудно: 1) Определяем публичные переменные (или свойства) в форме и в них храним все что касается контролов 2) В событии Form_Load эти переменные (свойства) копируем в свойства контролов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 11:38:37 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=291&tid=2166309]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 347ms |

| 0 / 0 |
