Pracuję nad aplikacją pulpitu C#, W formularzu MDI otwierane jest to samo okno podrzędne po kliknięciu menu, gdy pierwsza instancja tego okna jest obecna. Jak mogę zapobiec tym wielokrotnym wystąpieniom podrzędnych okien w formularzu MDI?Zapobieganie temu samemu okienku podrzędnemu wiele razy w formularzu MDI
5
A
Odpowiedz
4
Można sprawdzić, czy formularz został otwarty już:
Form instance = null;
// Looking for MyForm among all opened forms
foreach (Form form in Application.OpenForms)
if (form is MyForm) {
instance = form;
break;
}
if (Object.ReferenceEquals(null, instance)) {
// No opened form, lets create it and show up:
instance = new MyForm();
instance.Show();
...
}
else {
// MyForm has been already opened
// Lets bring it to front, focus, restore it sizes (if minimized)
if (instance.WindowState == FormWindowState.Minimized)
instance.WindowState = FormWindowState.Normal;
instance.BringToFront();
if (instance.CanFocus)
instance.Focus();
...
}
0
Może to pomóc:
public static bool formOpened = false; // it is global boolean
Form2 instance;
Po otwarciu formularza:
if(formOpened == false)
{
instance = new Form2();
instance.Show();
formOpened = true;
}
else
{
instance.Focus();
}
One More rzecz jest po zamknięciu Form2, powinieneś ustawić wartość formOpened na false;
Powiązane problemy
- 1. Zapobieganie otwieraniu aktywności wiele razy
- 2. Zapobieganie zdublowaniu formularzy podrzędnych MDI
- 3. Visual Studio 2010 irytująco otwiera dokumenty w niewłaściwym okienku MDI.
- 4. wiele przycisków w formularzu
- 5. StateChangeStart wyzwalanie wiele razy
- 6. Aplikacje MDI w WPF
- 7. Zapisz wiele razy w Cakephp
- 8. Wysyłając SMS samemu
- 9. Deklarowanie zmiennych wiele razy
- 10. NSNotificationCenter dzwoni wiele razy
- 11. Osiągnięcie Game Center odblokowanie wiele razy
- 12. Wiele grup przycisków opcji w jednym formularzu
- 13. Yii - wiele rekordów w jednym formularzu składania
- 14. Chrome wysyła żądanie wiele razy.
- 15. CNContactStoreDidChangeNotification jest uruchamiany wiele razy
- 16. Uruchamianie testowania PHPUnit wiele razy
- 17. Moq'ing podnoszenie zdarzeń wiele razy
- 18. Turbolinks ładuje Javascript wiele razy
- 19. Powracasz wiele razy z metody?
- 20. NSURLProtocol canInitWithRequest: wywoływana wiele razy
- 21. Użyj jednego CTE wiele razy
- 22. Detektor stanu zadzwonił wiele razy
- 23. NSNotification jest wywoływany wiele razy
- 24. chrome.tabs.onUpdated.addListener() o nazwie wiele razy
- 25. Zapobieganie wielu instancjom na serwerze o tej samej nazwie użytkownika
- 26. Drukowanie tekstu wiele razy w Brainfuck
- 27. Użyj jednego fragmentu w ViewPager wiele razy
- 28. RegEx Dopasuj wiele razy w ciągu znaków
- 29. Jak usunąć obramowanie 3d (zatopiony) z komponentu MDIClient w formularzu nadrzędnym MDI?
- 30. Zdarzenie, gdy wszystkie formularze mdi są zamknięte
dziękuję Dmitry, – n8coder