kilogram Skrevet 30. desember 2005 Del Skrevet 30. desember 2005 Eg sitt her og herje med eit prosjekt i VS.NET 2005 (C#, om du ville vete det), og har eit problem med TableLayoutPanel (TLP) og scrolling. Min TLP består av ein kolonne og mange rader, som blir satt opp under runtime. Dette fungerer strålande, men når formen vises er den slik som på det vedlagte bildet. Eg vil kvitte meg med den horisontale scrollbaren. Eg bruker no AutoScroll, og etter litt enkel googling fant eg ein måte som kan fungere, men den involverte å override WndProc, og dermed hekte seg på Win32 API, som er litt dumt når ein skriv i .NET. Kolonnen er satt til å autosize bredde (eg veit ikkje kor stort vindauget vil bli), og alle radene er også satt til autosize høyde. Problemet, slik eg ser det, er at Windows først teiknar opp den første rada, så den andre, og får plass til desse to. Når den legger til den tredje, så må ein innføre ein vertikal skrollbar for å få plass, og då blir breidden på vindauget 20 px mindre, slik at det kjem ein horisontal scrollbar. Er det nokon som har nokre tips til korleis eg kan kvitte meg med den horisontale scrollbaren med minst mulig kode? (Ja, eg sensurerte vekk deler av teksten på bildet sånn at ingen skal finne ut kva type program eg driv med. Det er greit, eg er paranoid.) Lenke til kommentar
Zic0 Skrevet 30. desember 2005 Del Skrevet 30. desember 2005 (endret) Hmm du kan a) Sette 20 px ekstra fra starten b) Når du henter ut radene kan du sette en variable til å øke med, og så sette 20 px ekstra når den går til nr. 3. Kanksje ikke like optimalt, men det fungerer. Vet ikke om den kolonna har sånn property men du kan se om den har Scrollbars. Der kan du sette til Vertical. Endret 30. desember 2005 av Zic0 Lenke til kommentar
kilogram Skrevet 30. desember 2005 Forfatter Del Skrevet 30. desember 2005 Hmm du kan a) Sette 20 px ekstra fra starten b) Når du henter ut radene kan du sette en variable til å øke med, og så sette 20 px ekstra når den går til nr. 3. Kanksje ikke like optimalt, men det fungerer. Å sette 20 piksler direkte, utsetter bare buggen litt, uansett korleis ein gjer det. Det er full mulig å stille på dette i Windows, slik at ein får større scrollbars, og difor er eg litt lite gira på å gjere det slik. Dessuten bruker eg AutoSize på kontrollane eg sett inn, så i så fall må eg begynne å styre resizing sjølv, som eg ikkje akkurat har lyst til. Vet ikke om den kolonna har sånn property men du kan se om den har Scrollbars. Der kan du sette til Vertical. 5358714[/snapback] TableLayoutPanel har VerticalScrollbar og HorizontalScrollbar, men ingenting skjer når eg slår på desse (ja, eg slår på både enabled og visible), så dette er litt mystisk. Lenke til kommentar
kilogram Skrevet 1. januar 2006 Forfatter Del Skrevet 1. januar 2006 Eg fekk det endelig til, ved å plassere følgande kode i Form_Load; Width += SystemInformation.VerticalScrollBarWidth; Width -= SystemInformation.VerticalScrollBarWidth; Dette er dog ein suboptimal løysing, så om nokon har eit betre løysing, fyr laus... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå