Får vilka clowner som helst skriva kontroller nuförtiden? Tja, jag har inte lösningen på alla dina problem men för att ändra fonten till Bold borde du kunna göra nåt liknande som detta exempel: så här ligger det till.. Tack för förklaringen Roger. Jag hävdar dock fortfarande att det suger och att det är fullständigt ologiskt beteende. Av det skälet tycker jag också att gnäll är befogat, även om just Magic-tabben är gratis :-) det är ju fullständigt logiskt , När jag skrev ologiskt så menade jag i min ilska egentligen oanvändbart eller idiotiskt beteende. Du har ju förklarat VARFÖR den beter sig på det viset så logisk må det vara. Ändra font på Tabkontrollens fliktexter
Jag har tidigare gnällt i forumet på tabkontrollens Visible-property som inte döljer själva tabben utan i stället döljer kontrollerna på tabben. Fliken är alltså synlig men tom....vem f&%¤%n vill ha en sådan funktion. Detta går dock att lösa genom att ta bort tabpage:n från tabpage-collectionen (se mitt tips i tips&tricks).
Det värsta är att exakt samma beteende har jag hittat på två andra tabkontroller (bl a Crownwoods MagicTools).
Men det som får mig att fullkomligt slita mitt hår nu är att jag vill ändra fonten på texten på en viss flik. I min applikation så jag vill ha fetstil på fliktexterna när fliken innehåller någon intressant information för användaren som dom bör läsa. Jag använder denna kod :
<code>
' tabLowerMailBox är en TabPage
tabLowerMailBox.Font=new System.Drawing.Font("Microsoft Sans Serif",8.25f,FontStyle.Bold);
</code>
Gissa om texten ändras på enbart flikens text, eller på alla kontroller på fliken (men INTE på själva fliktexten)? J&%¤"#a clowner! Ta på er den röda clownnäsan, en dumstrut och ställer i ett hörn och skäms. Kontrollen är ju oanvändbar...*suck*
Snart skriver jag en egen tabkontroll om det här ska fortsätta...Någon som har en lösning på detta eller som kan peka i riktning mot en tabkontroll som faktiskt går att använda?Sv: Ändra font på Tabkontrollens fliktexter
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsTabControlClassDrawItemTopic.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsTabControlClassDrawItemTopic.asp
(fick inte urlarna att funka i forumet nu...)
Jag modifierade det lite och fick fram följande:
<code>
private void tabControl1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
Rectangle tabArea;
RectangleF tabTextArea;
Graphics g = e.Graphics;
Pen p = new Pen(Color.Blue);
Font font;
TabPage tab=tabControl1.TabPages[e.Index];
if(e.Index==0)
{
font = new Font("Arial", 10.0f);
}
else
{
font = new Font("Arial", 10.0f, FontStyle.Bold);
}
SolidBrush brush = new SolidBrush(Color.Red);
tabArea = tabControl1.GetTabRect(e.Index);
tabTextArea = (RectangleF)tabControl1.GetTabRect(e.Index);
g.DrawRectangle(p, tabArea);
g.DrawString(tab.Text, font, brush, tabTextArea);
}
</code>
glöm inte att sätta DrawItem eventet till tabControl1_DrawItem
och tabControl1.DrawMode=TabDrawMode.OwnerDrawFixed;
En bit på vägen kanske? Iallafall om du skall skriva en egen...Sv: Ändra font på Tabkontrollens fliktexter
en tabpage , ärver från control
och får därmed alla properties som finns i control , tex font.
fonter och färger i windows forms är ambient properties , dvs , om fonten/färgen är null/empty på en kontroll så får den samma inställningar som sin parent..
alltså , lägger du en label på en tabpage , så kommer din label att få samma font som din tabpage om du inte specat något annat i din label..
ändrar du nu fonten på din tabpage så kommer du få just den effekten du beskriver..
det är samma betenede som gäller för ALLA windows forms komponenter,
fast visst vore det väll ganska smutt om det fanns någon "HeaderFont" eller liknande som beskriver fonten för själva fliken..
ps.
och använder man dessutom gratisversionen av magic libbet så kan man väll inte gnälla på något , har man inte betalt något så kan man väll inte kräva något heller..
//RogerSv: Ändra font på Tabkontrollens fliktexter
Jag ska testa Arathorns lösning, under protest förstås... :-)Sv: Ändra font på Tabkontrollens fliktexter
det är ju den funktionalliteten som gör det möjligt att sätta en ny font/färg på formuläret och få den nya inställningen att slå igenom på alla kontroller på formuläret..
fast visible proppen är ju en annan sak , där borde den ju verkligen gömma själva tabbfliken.
//RogerSv: Ändra font på Tabkontrollens fliktexter
Men oanvändbart och idiotiskt vidhåller jag att det är, för både Visible och Font. Jag är ANVÄNDARE av kontrollen och då skiter jag ju fullkomligt i om det finns en rimlig förklaring till beteendet när det suger ur användarsynpunkt. Precis på samma sätt som användarna av mina applikationer antagligen skiter om det finns ett jättebra programmeringstekniskt skäl till att min program är fula/infunktionella/slöa eller har andra brister.