En C# .NET j'essaye de changer par programme la couleur de la frontière dans une zone de groupe. Mise à jour: Cette question a été posée lorsque je travaillais sur un système WinForms avant de passer à .NET.Comment changer la couleur de la bordure d'une boîte de groupe?
Répondre
bâtiment sur la réponse précédente, une meilleure solution qui comprend l'étiquette de la boîte de groupe:
groupBox1.Paint += PaintBorderlessGroupBox;
private void PaintBorderlessGroupBox(object sender, PaintEventArgs p)
{
GroupBox box = (GroupBox)sender;
p.Graphics.Clear(SystemColors.Control);
p.Graphics.DrawString(box.Text, box.Font, Brushes.Black, 0, 0);
}
Vous pouvez régler le x/y pour le texte, mais pour mon usage c'est juste .
Merci @Mick Bruno, vous m'a sauvé un moment sérieux :) –
Thx! Pour supprimer la bordure, utilisez 'box.Parent.BackColor', comme je l'ai fait. – dwo
Je ne suis pas sûr que cela vaut pour tous les cas, mais grâce à ce fil, nous accroché rapidement dans l'événement Paint par programme:
GroupBox box = new GroupBox();
[...]
box.Paint += delegate(object o, PaintEventArgs p)
{
p.Graphics.Clear(someColorHere);
};
Cheers!
Il suffit de définir l'action de peinture sur n'importe quel objet (et pas seulement sur les boutons) de cette méthode pour dessiner une bordure. Il ne sera toujours pas joli et arrondi comme l'original, mais c'est beaucoup plus simple.
Ajoutez simplement un événement de peinture.
private void groupBox1_Paint(object sender, PaintEventArgs e)
{
GroupBox box = sender as GroupBox;
DrawGroupBox(box, e.Graphics, Color.Red, Color.Blue);
}
private void DrawGroupBox(GroupBox box, Graphics g, Color textColor, Color borderColor)
{
if (box != null)
{
Brush textBrush = new SolidBrush(textColor);
Brush borderBrush = new SolidBrush(borderColor);
Pen borderPen = new Pen(borderBrush);
SizeF strSize = g.MeasureString(box.Text, box.Font);
Rectangle rect = new Rectangle(box.ClientRectangle.X,
box.ClientRectangle.Y + (int)(strSize.Height/2),
box.ClientRectangle.Width - 1,
box.ClientRectangle.Height - (int)(strSize.Height/2) - 1);
// Clear text and border
g.Clear(this.BackColor);
// Draw text
g.DrawString(box.Text, box.Font, textBrush, box.Padding.Left, 0);
// Drawing Border
//Left
g.DrawLine(borderPen, rect.Location, new Point(rect.X, rect.Y + rect.Height));
//Right
g.DrawLine(borderPen, new Point(rect.X + rect.Width, rect.Y), new Point(rect.X + rect.Width, rect.Y + rect.Height));
//Bottom
g.DrawLine(borderPen, new Point(rect.X, rect.Y + rect.Height), new Point(rect.X + rect.Width, rect.Y + rect.Height));
//Top1
g.DrawLine(borderPen, new Point(rect.X, rect.Y), new Point(rect.X + box.Padding.Left, rect.Y));
//Top2
g.DrawLine(borderPen, new Point(rect.X + box.Padding.Left + (int)(strSize.Width), rect.Y), new Point(rect.X + rect.Width, rect.Y));
}
}
Existe-t-il un moyen d'épaissir la bordure et d'arrondir le rectangle? –
- 1. Comment changer la couleur de la bordure du formulaire C#?
- 2. Couleur de la bordure du groupe Box dans application Windows
- 3. Essayer de changer la couleur de la bordure d'une étiquette
- 4. Changer la couleur de la bordure inférieure en utilisant jquery?
- 5. Comment définir la couleur de la bordure d'un CircleItemRenderer
- 6. WPF SystemColors: couleur de la bordure TextBox
- 7. Changer la couleur bleue classique de la boîte de commande de la forme
- 8. Changer la couleur de JFileChooser
- 9. Changer la couleur de la date
- 10. changer la disposition sur la boîte de sélection changer
- 11. Comment changer la couleur de la police d'un TextBox désactivé?
- 12. Comment changer la couleur de la police dans VB6?
- 13. Flash/As3 - changer la couleur de focusRect
- 14. Comment changer la couleur UIPicker? iPhone
- 15. iPhone: comment changer la couleur d'une image
- 16. Comment changer la couleur d'un MenuItem Cocos2d?
- 17. Changer la couleur d'un pixel
- 18. Comment changer la couleur de fond d'un NSBrowser de cacao?
- 19. Comment changer la couleur de teinte du NSLevelIndicator de Cocoa?
- 20. UIStringDrawing Changer la couleur de la police - touche de cacao
- 21. WinForms: couleur Bordure DataGridView
- 22. Changer la couleur d'arrière-plan plein écran
- 23. changer la couleur de titleFor-tête dans la section
- 24. Modification de la couleur de la bordure dans les cellules UITableView iPhone (non groupées)
- 25. Comment changer la couleur de l'image à l'exécution
- 26. comment changer la couleur de winform DataGridview en-tête?
- 27. Comment changer la couleur de scatterplot dans ggplot2
- 28. Comment changer la couleur des lettres de sectionIndexTitlesForTableView?
- 29. Comment changer la couleur du texte de l'étiquette?
- 30. Changer la couleur de l'élément de liste de radiobutton désactivé
@Amy Vérifiez _user1944617_ réponse, c'est vraiment sympa et supérieur à celui accepté. juste essayé et correspond parfaitement avec la conception de boîte de groupe par défaut. – Drake