[C#.NET] backcolor van een tabControl

Pagina: 1
Acties:

  • AquilaDus
  • Registratie: Januari 2004
  • Laatst online: 21-03 00:33
Het gaat zich om het volgende onderdeel:

System.Windows.Forms.TabControl

Bij deze control lukt het mij niet om de kleur te veranderen. De oppervlakken van het blad levert geen probleem omdat dit aparte onderdelen zijn. Maar de Tabs waar de namen op staan krijg ik niet veranderd.
De Control heeft namelijk ook geen backcolor veld volgens het property venster en de code-completion.

Maar in MSDN library staat gewoon dat dit veld wel bestaat:

http://msdn.microsoft.com...stabcontrolclasstopic.asp

Het is ook mogelijk om in de code dit veld te veranderen(alhoewel deze optie dus niet door de code-completion wordt gegeven). Maar als je dan de kleur veranderd zie je geen verschil.

Heeft iemand een idee wat ik misschien fout doe en hoe ik toch die kleur kan veranderen?

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Het is MS' schuld. Veel Winforms controls zijn zo brak in elkaar gezet, dat wil je niet weten.

Je kunt hier echter wel wat aan doen hoor. :)
http://www.codeproject.com/cs/miscctrl/themedtabpage.asp

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • AquilaDus
  • Registratie: Januari 2004
  • Laatst online: 21-03 00:33
Dankje, tis inderdaad waarschijnlijk de enige manier om het op te lossen. Ik snap niet waarom er zo'n domme fout is gemaakt. Veel controls werken heel goed, maar er zijn er ook een aantal bij die volgens mij op de vrijdagmiddag gemaakt zijn.

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Een tabpage bestaat eigenlijk niet in win32. Je hebt alleen een tabstrip, en het kiezen van een andere tab moet jou het signaal geven een andere rits controls te laten zien (door groups). Omdat MS alle winforms controls vrolijk met win32 controls heeft gemaakt heb je dus een probleem. De winforms prutsers hebben dus verzuimd om fatsoenlijke code toe te voegen aan de tabpage control om het geheel er nog een beetje fatsoenlijk te laten uitzien.

Ik noem het prutswerk omdat het prutswerk is. Voeg maar eens in een loop 100 nodes toe aan een treeview en aan het eind van die loop (dus de laatste node is geadd) doe je Application.DoEvents(); veel plezier :D

(edit) de meeste probs zitten in het feit dat win32 via SendMessage() werkt en dat is asynchroon, terwijl .NET synchroon werkt: set een property en de change moet zichtbaar zijn.

[ Voor 13% gewijzigd door EfBe op 03-02-2004 19:11 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com