Ho uno strano problema relativo al dimensionamento automatico di un pannello in un controllo utente. Questo pannello è ancorato su tutti e 4 i lati del controllo utente. Ma l'ancoraggio non funziona sempre come dovrebbe:C#: il pannello ancorato non verrà ridimensionato correttamente
Se il controllo utente viene ridimensionato ridimensionando il modulo, gli ancore destro e inferiore non funzionano. Ma se il controllo viene ridimensionato utilizzando uno splitter che è nella forma, funziona correttamente. Tutti gli altri controlli che sono interessati dal ridimensionamento funzionano correttamente, solo questo pannello non funzionerà.
Non riesco a vedere la differenza tra il ridimensionamento attraverso uno splitter e un modulo.
L'impostazione manuale delle dimensioni in OnResize di UserControl funziona solo se il ridimensionamento viene eseguito spostando lo splitter. Se il ridimensionamento si verifica ridimensionando il modulo, l'altezza e la larghezza del pannello non cambieranno ai nuovi valori.
Modifica: per rendere più chiaro: il controllo utente viene aggiunto a una TabPage e impostato su Dock = DockType.Fill.
Edit2: Per rendere più complicato: Questa è la gerarchia il controllo viene utilizzato: Il modulo contiene uno splitter con 2 comandi (A e B). (B) contiene un controllo utente (C) con splitContainer. Il contenitore diviso-> panel1 in (C) contiene un controllo tabulazione (D). Questo tabcontrol (D) contiene un controllo utente (E) (in una pagina di tabulazione). Questo controllo utente (E) ha uno splitcontainer (F) in cui è posto un altro controllo usc con un tabControl (G). Questo tabcontrol (G) ha tabpage e in queste pagine è posizionato il controllo utente (H) descritto.
Se posiziono il controllo (H) direttamente sul pannello nel contenitore di suddivisione (C), tutto funziona correttamente. Dal momento che tutti i controlli aggiunti a uno split container o una tabpage sono impostati su docktype = fill, non riesco a capire perché l'ultimo controllo abbia questo problema.
Esiste qualche limite nel framework Windows Form che limita la quantità di controlli figlio?
Modifica: Ho caricato una TestApplication con cui è possibile riprodurre questo problema. http://rapidshare.de/files/49092516/TestApplication.zip.html Si verifica solo in Vista. Win XP e 7 funzionano correttamente ... Se si ridimensiona il modulo, la casella di testo con il pulsante "..." non verrà ridimensionata, ma se si ridimensiona tramite splitContainer verticale, funziona.
Potrebbe incollare il codice codice generato dal progettista (dove si collega tutti i controlli insieme)? La mia prima ipotesi è che il tuo pannello sia ancorato a un controllo diverso da quello che pensi (ad esempio uno dei pannelli della divisione) – Grzenio
Sarebbe troppo codice da incollare, ma ho controllato l'ancora più di una volta ed è impostato correttamente (che è dimostrato da un ridimensionamento funzionante quando si utilizza lo splitter) –