vb.net Запретить активацию формы 1 при нажатии на форму 2 - PullRequest
1 голос
/ 20 июня 2011

У меня такая же проблема, как у решения здесь Предотвращение появления основной формы при отображении другой формы . но некоторые из предложений заключались в том, чтобы минимизировать основное приложение, чтобы оно не отображалось, чего я не могу сделать, потому что мое основное приложение должно быть рабочим столом, а не все другие приложения заменять рабочий стол Windows. А вторые формы должны быть записками. поэтому я не могу свернуть главное окно, потому что оно имеет пользовательский фон и другие элементы управления. я попытался сделать родительские заметки указателем Nothing, указателем на рабочий стол, создать форму через dll, но у меня ничего не получилось.

Моя основная проблема заключается в том, что когда я щелкаю заметку (form2), появляется форма1, даже с формой1, имеющей WS_EX_NOACTIVATE в createparams. form1 выполняет form2.show (), но они не должны быть присоединены.

Еще одна причина, по которой у меня возникают проблемы с решениями, описанными в этом посте, заключается в том, что они предназначены для Delphi, и я делаю это в vb.net.

Все, что мне нужно, это возможность нажимать на элементы управления и писать в заметке, не оставляя основной формы за заметкой. либо сделав их независимыми, либо сделав заметку не сфокусированной на первой форме, либо не имея возможности управлять заметкой без ее активации. я не знаю. Мой последний ресурс - прикрепить основную форму к рабочему столу, но я слышал, что это худшее, что вы можете сделать, потому что это может вызвать проблемы с зависанием системы.

1 Ответ

0 голосов
/ 20 июня 2011

Если вы хотите, чтобы обе формы сосуществовали, но не создавали помехи друг другу: в этом случае вам может понадобиться третья форма, которая вызывает открытие как формы Form1, так и формы Form2, и позвольте мне предложитьи MDI Form с Form1 и Form2 как дочерние формы MDI формы

'============== мой предыдущий пост ======================== Вы можете принудительно заставить пользователя сначала закрыть Form2, а затем разрешить ему вернуться к form1, показав Form2 как модальную форму.Вот как отобразить Form2 как модальный

Dim f2 as New Form2
f2.ShowModal()

Если это не сработает, попробуйте это

Dim f2 as New Form2
f2.Show(True)
...