Laden...

[erledigt] tabControl: Weißer Rand an der rechten Seite

Erstellt von SeCuRiiTaS vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.642 Views
S
SeCuRiiTaS Themenstarter:in
108 Beiträge seit 2012
vor 11 Jahren
[erledigt] tabControl: Weißer Rand an der rechten Seite

Hallo,
ich nutze ein tabControl auf einem Schwarzen Hintergrund.

Nun sehe ich das das tabControl auf der rechten Seite einen weißen Rand hat.
Man sieht deutlich, dass das TabControl an der grauen Linie endet und der weiße Rand dranhängt.

Gibt es eine Möglichkeit diesen Rand zu entfernen oder wenigstens schwarz zu färben?

Vielen Dank

Mit freundlichen Grüßen,
SeCuRiiTaS

241 Beiträge seit 2010
vor 11 Jahren
Hinweis von herbivore vor 11 Jahren

Zur Information: Der Thread stand zum Zeitpunkt der folgenden Frage in "GUI: WPF und Silverlight". Aber die Antwort zeigt, dass es um Windows Forms geht ==> verschoben. Danke an Karill Endusa für den Hinweis.

Wie sieht dein WPF bzw. Theme Code den aus?

WAGO Kontakttechnik GmbH & Co. KG / Software Notion
Softwareentwicklung

C# .NET with WPF, ASP, Xamarin and Unity
Personal Blog: Development Blog

S
SeCuRiiTaS Themenstarter:in
108 Beiträge seit 2012
vor 11 Jahren

Hallo,
das tabControl hab ich einfach über meine Werkzeuge (Tools) verwendet.
Wurde also automatisch generiert.

            // 
            // tabControl
            // 
            this.tabControl.Controls.Add(this.tabPersonen);
            this.tabControl.Controls.Add(this.tabOrganigramm);
            this.tabControl.Controls.Add(this.tabSonstige);
            this.tabControl.Enabled = false;
            this.tabControl.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.tabControl.ItemSize = new System.Drawing.Size(65, 20);
            this.tabControl.Location = new System.Drawing.Point(4, 9);
            this.tabControl.Margin = new System.Windows.Forms.Padding(0);
            this.tabControl.Name = "tabControl";
            this.tabControl.Padding = new System.Drawing.Point(0, 0);
            this.tabControl.SelectedIndex = 0;
            this.tabControl.Size = new System.Drawing.Size(522, 427);
            this.tabControl.TabIndex = 1;
            this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);

Mit freundlichen Grüßen,
SeCuRiiTaS

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo SeCuRiiTaS,

üblicherweise gibt es vom Control keine Unterstützung, um einzelne Details anzupassen. Aber du kannst es natürlich mal mit Control.BackColor probieren.

Wenn du von dem Control erbst, kannst du OnPaint überschreiben, base.OnPaint aufrufen und anschließend, die Bereiche überzeichnen, die anders aussehen sollen. Allerdings solltest du beachten, dass Controls üblicherweise nicht nur eine Darstellung besitzen, sondern normalerweise mindestens für jede Oberfläche (Win2k, Luna, Aero, MetroDesign) eine. Wenn man einfach fest einen bestimmten Bereich übermalt, sieht das unter einer anderen Oberfläche vermutlich sehr ungewollt und störend aus.

herbivore

S
SeCuRiiTaS Themenstarter:in
108 Beiträge seit 2012
vor 11 Jahren

BackColor gibt es bei einem TabControl nicht.

Die zweite Variante scheint mir nicht so gut zu sein. Aufgrund deiner Erklärung.

Mit freundlichen Grüßen,
SeCuRiiTaS

1.378 Beiträge seit 2006
vor 11 Jahren

TabControl wie jedes andere Control unter Windows.Forms erbt von System.Control was wiederum die Eigenschaft BackColor besitzt. (Ich vermute aber dennoch, dass dies den äußeren Rand hier nicht verändern wird)

Lg, XXX

S
SeCuRiiTaS Themenstarter:in
108 Beiträge seit 2012
vor 11 Jahren

Okay ich hab das nun mal angwendet. Hat leider keine Veränderungen gebracht.

Mit freundlichen Grüßen,
SeCuRiiTaS

1.378 Beiträge seit 2006
vor 11 Jahren

Bei WPF kann man auch negative Margins setzen... das könnte hier zB funktionieren indem du den weißen Rand einfach unter den schwarzen Rand außen drunterschiebst. Aber ich befürchte das negative Margins bei Windows.Forms nicht möglich sind.

Als alternativen (schmutzigen) Workarround kannst du noch schwarze Panels über den weißen Rand legen.

Lg, XXX

S
SeCuRiiTaS Themenstarter:in
108 Beiträge seit 2012
vor 11 Jahren

Ich habe deine Alternative angewendet und das sieht nun gut aus. Schmutzig aber klappt 😛 Danke.

Mit freundlichen Grüßen,
SeCuRiiTaS