J'essaye d'ajouter la couleur de police et la couleur de fond pour les onglets créés dans le tabcontrol et également la couleur de fond pour l'endroit qui est vide sans onglets. Parce que mon tabcontrol est étiré à la taille de mon formulaire en plein écran. Dites si un seul onglet est créé dans le tabcontrol, la couleur d'arrière-plan de l'onglet doit être de couleur bleue et le reste de tabcontrol doit être de couleur bleu foncé. La couleur par défaut est gris pour ça, ce qui est très moche. J'utilise le code ci-dessous, qui fonctionne très bien pour la couleur de police et la couleur d'arrière-plan de l'onglet. Mais je ne reçois pas la couleur bg pour le reste des places.Couleur d'arrière-plan pour Tabcontrol dans l'application C# windows
ai-je rien manqué?
private void tabControl1_DrawItem_1(object sender, DrawItemEventArgs e)
{
//set color for Background
Brush BG_BackBrush = new SolidBrush(Color.FromArgb(111, 111, 111)); //Set background color
//Rectangle BG_r = e.Bounds;
Rectangle BG_r = new Rectangle(1682, 34, this.Width - 2, this.Height - 2);
BG_r = new Rectangle(BG_r.X, BG_r.Y + 8, BG_r.Width, BG_r.Height - 3);
e.Graphics.FillRectangle(BG_BackBrush, e.Bounds);
//set color for Tabs
Font TabFont;
Brush BackBrush = new SolidBrush(Color.FromArgb(147, 188, 200)); //Set background color
Brush ForeBrush = new SolidBrush(Color.FromArgb(11, 51, 106));//Set foreground color
if (e.Index == TaskBarRef.tabControl1.SelectedIndex)
{
TabFont = new Font(e.Font, FontStyle.Bold);
}
else
{
TabFont = new Font(e.Font, FontStyle.Regular);
}
Rectangle r = e.Bounds;
r = new Rectangle(r.X, r.Y + 8, r.Width, r.Height - 3);
string TabName = TaskBarRef.tabControl1.TabPages[e.Index].Text;
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
e.Graphics.FillRectangle(BackBrush, e.Bounds);
e.Graphics.DrawString(TabName, TabFont, ForeBrush, r, sf);
sf.Dispose();
if (e.Index == TaskBarRef.tabControl1.SelectedIndex)
{
TabFont.Dispose();
BackBrush.Dispose();
}
else
{
BackBrush.Dispose();
ForeBrush.Dispose();
}
}
Observation: Vous utilisez '' TabFont' et ForeBrush' en même temps, Pourtant, vous en disposez en exclusivité. Cela ne semble pas du tout correct! – leppie