Gå til innhold

Windows Forms flickering


Anbefalte innlegg

Videoannonse
Annonse
Jeg har sikkert laget 20 programmer i de siste årene og har aldri hatt noe slikt. Hva er det du egentlig opplever?

 

Lag et program med en TabControl.

Lag 3 tabs.

dra musen mellom de 2 tabbene som IKKE er i fokus.

 

 

Da flimrer den som et gammelt win32 program uten double buffering. Bruker Vista uten desktop composition (e.g. 3d-effekter skrudd av). Jeg synes dette er for svakt for en standard control.

 

(som du kanskje skjønner er jeg ikke normalt .NET utvikler).

Endret av invictus
Lenke til kommentar

Vel, lagde et std. windows program. slang på en tab control, med 3 tabs. Kompilerte og kjørte. Nyll flimring. Eneste jeg kan se er at bakgrunnsfargen på tabben som er under musen skifter farge, men det er hverken irriterende eller stugt på noen som helst måte. Skrur nå av effekter for å se...

Nå testet jeg med "Windows standard" tema. Resulterte kunn i at fargeskiftingen forsvant. Men fortsatt ingen irriterende effekter. Skjønner fortsatt ikke hva som er problemet her

Lenke til kommentar
Vel, lagde et std. windows program. slang på en tab control, med 3 tabs. Kompilerte og kjørte. Nyll flimring. Eneste jeg kan se er at bakgrunnsfargen på tabben som er under musen skifter farge, men det er hverken irriterende eller stugt på noen som helst måte. Skrur nå av effekter for å se...

Nå testet jeg med "Windows standard" tema. Resulterte kunn i at fargeskiftingen forsvant. Men fortsatt ingen irriterende effekter. Skjønner fortsatt ikke hva som er problemet her

 

 

Hvis du har Vista, gå på properties for Computer -> Advanced System Settings -> Performance setting.

 

Sett den til adjust for best apperance, men fjern desktop composition før du trykker OK.

 

...og prøv igjen.

 

har nettopp fått dette bekreftet på en annen PC. Ble et øyeblikk redd for at det var noe galt med min PC.

 

 

Prøvde også å kjøre opp et identisk program som .NET programmet, bare skrevet i QT4/C++, og der var det ikke noe flimmer.

 

EDIT: Det synes ekstra godt hvis du resizer vinduet veldig fort...da går tabsene helt amokk. Er ikke meningen å være vanskelig, og jeg beklager hvis jeg oppfattes slik. Er bare svært viktig at vinduet tegner seg opp skikklig.

Endret av invictus
Lenke til kommentar

Prøvde det du sa (Disablet bare desktop compo. i compability tabben på programmets egenskaper), og den flicker ikke mer enn når desktop compo. er slått på... (Når jeg resizer vinduet)

 

Forstår heller ikke hva du mener med at de flicker når man tar musen over dem...

Ingenting av det skjedde her...

 

edit:

	Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
	Get
		Dim cp As CreateParams = MyBase.CreateParams
		cp.ExStyle = cp.ExStyle Or &H2000000 'WS_EX_COMPOSITED
		Return cp
	End Get
End Property

 

Tok meg 2 minutt å finne på google :roll:

Legg den i formen din sin kode.

Endret av Wubbable
Lenke til kommentar
Pussig. Nå ser jeg det. Det rare er jo at ingen andre programmer i Windows oppfører seg slik. Men hjalp det noe med forslagene til de andre her?

 

Hei. Takk for tilbakemeldingene. Du har helt rett i at ingen andre Windows programmer oppfører seg slik. Det er det som gjør det ekstra irriterende.

 

 

Den CreateParams løsningen fungerte faktisk (!). Synes jo selvfølgelig det er litt håpløst å måtte subclasse TabControl. Denne burde være on by default fra Microsoft mener jeg.

 

EDIT: fungerer hvis jeg bruker CreateParams løsningen på formen også. Utrolig at ikke dette skal være enabled by default! Hva slags kode er egentlig 0x2000000 i klassiske Win32 defines?

Endret av invictus
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...