Maison  >  Article  >  Tutoriel système  >  Comment implémenter le dessin d'onglets arrondis dans Winform

Comment implémenter le dessin d'onglets arrondis dans Winform

王林
王林avant
2024-01-25 14:30:06460parcourir

Comment dessiner des onglets arrondis dans Winform

Jetons d'abord un coup d'œil à cet effet

Comment implémenter le dessin donglets arrondis dans Winform

Je vous donne une idée :

Réécrivez le contrôle TabControl et surchargez la méthode OnPaint

classe publique CustomTabControl : TabControl

{

//......

protected override void OnPaint(PaintEventArgs e)

{

this.PaintTransparentBackground(e.Graphics, base.ClientRectangle);

this.PaintAllTheTabs(e);

this.PaintTheTabPageBorder(e);

this.PaintTheSelectedTab(e);

}

//......

}

C Winform

Créez une fenêtre MDI et ajoutez un contrôle ToolStrip.

Créer une classe de base de formulaire

Classe publique BaseForm : Formulaire{

ToolStrip protégé toolStrip;

public static ListtoolStripItemList = new Lis();

protected void AddToolStrip(ToolStripItem toolStripItem){

toolStripItemList.add(toolStripItem);

if(toolStrip != null){

toolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[]{ toolStripItem });

}

}

protected void SubToolStrip(string formName){

if(toolStrip != null){

foreach (ToolStripItem i dans toolStripItemList){

if (i.Name == formName){

toolStrip1.Items.remove(i);

}

}

}

}

}

Créer une classe de base de formulaire parent

Classe publique MdiForm : BaseForm{

//Créez un contrôle ToolStrip toolStrip1 dans le formulaire Mdi et affectez-le à toolStrip dans la classe de base

protected override void OnLoad(EventArgs e) {

base.OnLoad(e);

toolStrip = this.toolStrip1;

}

}

Créer une classe de base de sous-formulaire

classe publique ChildForm : BaseForm{

protected override void OnLoad(EventArgs e) {

base.OnLoad(e);

ToolStripItem toolStripItem = new ToolStripItem();

toolStripItem.Name = this.Name;

toolStripItem.Text = "xxxxxx";

AddToolStrip(toolStripItem);

}

protected override void OnFormClosed(FormClosedEventArgs e) {

base.OnFormClosed(e);

SubToolStrip(this.Name);

}

}

C'est juste une idée simple. Tous les formulaires héritent d'une classe de base en même temps. Créez deux objets dans cette classe de base : ToolStrip (un contrôle pour ajouter des boutons sur la fenêtre Mdi) et List (pour plus de simplicité, une simple List est utilisée ici. . Si vous souhaitez ajouter d'autres effets, tels que des modifications de champs dans un formulaire, afin que les boutons du ToolStrip aient des effets réalistes différents, des images, etc., vous devez créer un ToolStripButtonCollection). Chaque fois qu'un nouveau sous-formulaire est chargé, allez. Lorsque ToolStripButtonCollection ajoute un élément, ToolStripButtonCollection ajoutera automatiquement un bouton à ToolStrip. De même, si ToolStripButtonCollection diminue un élément, ToolStrip diminuera automatiquement un bouton. Ici, vous pouvez également détecter certaines valeurs dans ToolStripButtonCollection, comme déterminer si le champ a. modifié et s'il doit être enregistré, etc.

Créez ensuite le formulaire Mdi et initialisez toolStrip dans la classe de base ;

Après cela, créez un sous-formulaire. Tant qu'il s'agit d'un sous-formulaire hérité de ChildForm, un bouton nommé d'après le nom du sous-formulaire sera automatiquement créé sur la fenêtre Mdi. Il est très similaire à l'effet souhaité. n'est qu'une idée de démonstration. Ce qui est important, c'est la création de la classe ToolStripButtonCollection.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer