Entwickler-Ecke

WinForms - Schließen Button


Xclusive - Sa 04.04.09 14:07
Titel: Schließen Button
Hab ein Messanger gemacht und will jetzt ein schließen Button einfügen.
Wie mache ich das, dass ich einzelne Tabs schließen kann
Siehe Bild:

Moderiert von user profile iconKha: Bild angehängt


Kha - Sa 04.04.09 14:28

Das wird leider nur mit einem tiefen Griff in die Trickkiste möglich sein. Am besten schaust du dich auf http://www.codeproject.com nach einem Control um, das dir die Arbeit abnimmt.


JüTho - Sa 04.04.09 14:35

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 [http://www.codeproject.com/info/search.aspx?artkw=tabcontrol] nach einem erweiterten TabControl, das diese Möglichkeit bietet. Die DockPanelSuite [http://sourceforge.net/projects/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


Xclusive - Sa 04.04.09 14:49

Vielen dank für die schnelle antwort
werde es testen
mfg David