Schauen wir uns zunächst diesen Effekt an
Geben Sie eine Idee:
Schreiben Sie das TabControl-Steuerelement neu und überladen Sie die OnPaint-Methode
öffentliche Klasse CustomTabControl: TabControl
{
//......
protected override void OnPaint(PaintEventArgs e)
{
this.PaintTransparentBackground(e.Graphics, base.ClientRectangle);
this.PaintAllTheTabs(e);
this.PaintTheTabPageBorder(e);
this.PaintTheSelectedTab(e);
}
//......
}
Erstellen Sie ein MDI-Fenster und fügen Sie ein ToolStrip-Steuerelement hinzu.
Erstellen Sie eine Basisklasse für ein Formular
öffentliche Klasse BaseForm: Form{
geschützter ToolStrip 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 in toolStripItemList){
if (i.Name == formName){
toolStrip1.Items.remove(i);
}
}
}
}
}
Erstellen Sie eine Basisklasse für das übergeordnete Formular
öffentliche Klasse MdiForm: BaseForm{
//Erstellen Sie ein ToolStrip-Steuerelement toolStrip1 im MDI-Formular und weisen Sie es toolStrip in der Basisklasse zu
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
toolStrip = this.toolStrip1;
}
}
Erstellen Sie eine Unterformular-Basisklasse
öffentliche Klasse 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);
}
}
Es ist nur eine einfache Idee. Alle Formulare erben gleichzeitig eine Basisklasse: ToolStrip (ein Steuerelement zum Hinzufügen von Schaltflächen im MDI-Fenster) und List (der Einfachheit halber wird hier eine einfache Liste verwendet). . Wenn Sie andere Effekte hinzufügen möchten, z. B. Feldänderungen in einem Formular, damit die Schaltflächen auf dem ToolStrip unterschiedliche realistische Effekte, Bilder usw. haben, müssen Sie eine ToolStripButtonCollection erstellen. Gehen Sie jedes Mal, wenn ein neues Unterformular geladen wird Wenn ToolStripButtonCollection ein Element hinzufügt, fügt ToolStripButtonCollection automatisch eine Schaltfläche zu ToolStrip hinzu. Wenn ToolStripButtonCollection ein Element verringert, verringert ToolStrip auch automatisch eine Schaltfläche. Hier können Sie auch einige Werte in ToolStripButtonCollection erkennen, z. B. bestimmen, ob das Feld vorhanden ist geändert wurde und ob es gespeichert werden muss usw.
Erstellen Sie dann das Mdi-Formular und initialisieren Sie toolStrip in der Basisklasse;
Solange es sich um ein von ChildForm geerbtes Unterformular handelt, wird im MDI-Fenster automatisch eine Schaltfläche erstellt, die dem gewünschten Effekt entspricht ist nur eine Demonstrationsidee. Wichtig ist die Erstellung der ToolStripButtonCollection-Klasse.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie das Zeichnen abgerundeter Tabulatoren in WinForm. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!