Parikon Posted October 18, 2019 Report Share Posted October 18, 2019 (edited) Potrzebuje rozwiązania problemu braku automatycznego dokowania od wersji 2020. W 2019 po włączeniu ZwCAD panele automatycznie się dokują zgodnie z kodem c#. A od wersji 2019.3 lub w wersji 2020 panel wyrzucony jest na bok. Nie chce zakładać oddzielnego tematu PaletaBazaZbrojenia.DockEnabled = (zzw.DockSides)((int)zzw.DockSides.Left + (int)zzw.DockSides.Right); Edited October 18, 2019 by Parikon Quote Link to comment Share on other sites More sharing options...
kruszynski Posted October 18, 2019 Report Share Posted October 18, 2019 Dnia 14.10.2019 o 19:48, Parikon napisał: Brak zapamiętywania ustawienia panelu to przypadłość, której nie było w ZwCAD 2019. Pojawiło się w ZwCAD 2019 Sp 3 i ZwCAD 2020 Sztuczka polega na tym, żeby ustawić np _ps.Dock = DockSides.Left; ale dopiero PO _ps.Visible = true; Czyli np: _ps = new PaletteSet("Group Manager"); _ps.DockEnabled = (DockSides)((int)DockSides.Left + (int)DockSides.Right); _ps.Visible = true; _ps.Dock = DockSides.Left; Parikon 1 Quote Link to comment Share on other sites More sharing options...
Parikon Posted October 18, 2019 Author Report Share Posted October 18, 2019 Działa, ale teraz zawsze jest z lewej. A wcześniej jak ustawiłem z prawej i zamknąłem panel a potem znów go chciałem włączyć to dopóty nie restartowałem całego ZwCADA panel startował po prawej. Quote Link to comment Share on other sites More sharing options...
Parikon Posted October 18, 2019 Author Report Share Posted October 18, 2019 Jeżeli nie da się tego naprawić po staremu, to można dać możliwość użytkownikowi wyboru strony w formie ustawień w programie. Co możecie zaimplementować też w powyższym programie. Quote Link to comment Share on other sites More sharing options...
kruszynski Posted October 18, 2019 Report Share Posted October 18, 2019 Można dodać obsługę zdarzenia na zamknięcie palety _ps.StateChanged += new PaletteSetStateEventHandler(OnPaletteClose); Tam zapisać położenie panelu static void OnPaletteClose(object sender, PaletteSetStateEventArgs e) { if (e.NewState == StateEventIndex.Hide) { ; tutaj zapisujemy położenie panelu w jakimś "pamiętniku" np zmiennej środowiskowe. } } A przy wczytywaniu sprawdzić co jest zapisane w "pamiętniku". Parikon 1 Quote Link to comment Share on other sites More sharing options...
Parikon Posted October 19, 2019 Author Report Share Posted October 19, 2019 Jest to jakieś rozwiązanie i działa. Jednakże dziwne, że nagle trzeba zmienić kod aby coś działało jak należy. Dla sprawnego oka widoczne jest, że paleta najpierw pojawia się obok, a potem dopiero jest dokowana. Przy czym objawia się to tylko po uruchomieniu ZwCAD-a. Dobrze by było to zgłosić do poprawki. Natomiast sam kod udało mi się zaimplementować z powodzeniem. static void OnPaletteClose(object sender, zzw.PaletteSetStateEventArgs e) { if (e.NewState == zzw.StateEventIndex.Hide) { if (_ps.Dock == zzw.DockSides.Left) { Settings1.Default._ps = "left"; } else { Settings1.Default._ps = "right"; } } } Dziękuję za pomoc. Quote Link to comment Share on other sites More sharing options...
kruszynski Posted October 21, 2019 Report Share Posted October 21, 2019 Dnia 19.10.2019 o 11:50, Parikon napisał: Dobrze by było to zgłosić do poprawki Zgłoszone. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.