Dokowanie panelu (C#)


Parikon

Rekomendowane odpowiedzi

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);

 

Edytowane przez Parikon
Odnośnik do komentarza
Udostępnij na innych stronach

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;

 

Odnośnik do komentarza
Udostępnij na innych stronach

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".

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie