Windows Forms - DesignMode, czyli sprawdzanie trybu pracy
Dziś krótki wpis na temat sprawdzania w Windows Forms, czy znajdujemy się w trybie Design. Jest to częstokroć bardzo przydatna możliwość, która może rozwiązać wiele problemów z brakiem dostępu do pewnych zasobów w czasie projektowania aplikacji.
Dlaczego tego wpisu w ogóle nie powinno być?
Tego wpisu, w ogóle nie powinienem mieć okazji stworzyć. Dlaczego? Bo WinForms dostarcza już właściwość DesignMode, która teoretycznie powinna zwracać odpowiednią wartość logiczną. Niestety... zwraca zawsze prawdę, niezależnie od tego czy faktycznie jesteśmy w trybie design, czy runtime. Skoro więc ta opcja nie działa, trzeba sobie radzić samemu.
Jak mimo to wydobyć tę informację?
Znane mi jest obejście tego problemu, polegające na sprawdzeniu nazwy obecnego procesu. Jeżeli odpowiada ona nazwie trybu design, to w nim jesteśmy, jeśli jest inna, nie pracujemy w trybie design. Nazwa procesu przetrzymywana jest w System.Diagnostics.Process.GetCurrentProcess().ProcessName. Zatem najlepiej napisać sobie osobną metodę do sprawdzania trybu pracy. Sugeruję umieścić to w osobnej klasie - helperze, tak aby nie implementować tego np. dla każdego widoku osobno. Metoda może wyglądać np. w ten sposób:{
return string.Equals(System.Diagnostics.Process.GetCurrentProcess().ProcessName, "devenv");
}
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!