To jest dla formularza okna.C# Panel z autoskalowaniem - Resetowanie pozycji Srollbar w fokusie kontrolnym
panel ma AutoScroll = True
dodaję paneli dynamicznie do głównego panelu, który kończy się przekroczenia Wyświetlacz główny panel prostokąt. Następnie dodawanie etykiet, pól złożonych i pól tekstowych do dodanych paneli.
Jeśli wybiorę pole kombi lub pole tekstowe, resetuje pozycję paska przewijania na 0, a menu rozwijane dla pola kombi zostanie umieszczone na ekranie X, Y tam, gdzie powinno być, jeśli pasek przewijania był nie zresetować.
Zastanawiam się, czy zapisać pozycję przewijania, gdy wybrana jest kontrola. Po przetestowaniu wygląda na to, że pozycja przewijania nie została jeszcze zresetowana, więc mogę ją tutaj przechwycić. Następnie mam nadzieję, że przywrócisz pozycję przewijania na jakimś wydarzeniu panelu. Próbuję dowiedzieć się, jakie dokładnie zdarzenie użyję do przywrócenia pozycji przewijania. Mam również nadzieję, że rozwijane menu zostanie umieszczone we właściwym X, Y, kiedy to zrobię.
Lepszym rozwiązaniem byłoby utworzenie niestandardowego sterowania opartego na sterowaniu panelem i ewentualnego zastąpienia zdarzenia? W ten sposób nie musiałbym zagracać mojego projektu, zapisując pozycję przewijania za każdym razem, gdy używam przewijanego panelu.
Wygląda na to, że jeśli wybiorę element sterujący, gdy przeskoczy on do góry, to po ponownym przewinięciu tego samego elementu kontrolnego pozycja paska przewijania nie zostanie zresetowana. – Untouchable