Wie Kha sagt, ist das relativ kompliziert; das Standard-
TabControl bietet dazu überhaupt keine Möglichkeit.
Das
Zeichnen des Buttons ist noch das geringste Problem. Ordne dem TabControl eine ImageList zu und setze ImageIndex.
Zum
Ausblenden einer TabPage musst du zunächst ein passendes Ereignis wählen. Wahrscheinlich ist ein MouseClick am besten geeignet, weil du dann noch den Bereich des Buttons prüfen musst. Ob eines der (De)Select-Ereignisse passt, glaube ich eher nicht.
Wenn diese Prüfungen erledigt sind, muss die
betreffende TabPage mit einer der
Remove-Methoden aus der
TabControl.TabPages-Auflistung herausgenommen werden. Es funktioniert leider nicht, die betreffende Seite mit Hide oder Visible oder TabVisible o.ä. zu verbergen.
Alternativen sind: Suche unter
CodeProject nach einem erweiterten TabControl, das diese Möglichkeit bietet. Die
DockPanelSuite bietet diese Möglichkeit, ist aber ein erheblich umfangreicheres Produkt und führt weit über deine Bedürfnisse hinaus. (Beispielsweise wurde die Oberfläche von #D früher damit erstellt.)
Gruß Jürgen