Laden...

Komponente gesucht: Label mit Linie

Erstellt von Ares vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.600 Views
A
Ares Themenstarter:in
167 Beiträge seit 2005
vor 15 Jahren
Komponente gesucht: Label mit Linie

Hallo!

An zahlreichen Stellen in Windows findet man Labels bei denen hinter dem Text eine waagerechte Linie bis zum Fensterrand folgt. Hiermit lassen sich gut verschiedene Abschnitte des Forminhalts unterteilen.

Gibt es eine solche Komponente unter den WinForms Standardkomponenten. Beim normalen Label konnte ich diese Funktion leider nicht entdecken. Da ich noch recht neu in .NET bin soll das allerdings nicht all zu viel heißen 😃

Bekommt man das also mit Boardmitteln hin oder braucht man dazu eine zusätzliche Komponente? Kann jemand eine Komponente empfehlen?

Besten Dank
Ares

S
27 Beiträge seit 2007
vor 15 Jahren

Hallo Ares,
das kannst Du z. B. mit einer GroupBox realisieren.
Gruß, Sparky

:::

Text auf einem Button im Computer Museum Boston, USA

Gelöschter Account
vor 15 Jahren

groupbox ist das was du suchst. ob die allerdeings nur eine horizontale linie darstellen kann, weiß ich nciht. jedenfalls erfüllt sie die von dir gennante aufgabe.

edit: da war wer schneller

239 Beiträge seit 2008
vor 15 Jahren

Hallo Ares,

du kannst diese Komponente auch "nachbauen", indem du ein Label nimmst, den Text löscht, AutoSize auf false, BorderStyle auf Fixed3D und Height auf 2 setzt.
Ist nur nicht sehr schön das dann zu positionieren...

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

A
Ares Themenstarter:in
167 Beiträge seit 2005
vor 15 Jahren

Hallo!

Die Groupbox liefert quasi genau was ich suche, allerdings zeichnet diese eben eine Box, also 3 Linien zu viel 😃

Das "nachbauen" mit einzelnen Komponenten möchte ich mir eigentlich sparen. Solche "Label mit Linie" sieht man doch eigentlich recht häufig, dass muss es doch schon irgendwie fertig geben.

239 Beiträge seit 2008
vor 15 Jahren

Hallo Ares,

das nachbauen das ich beschrieben habe benötigt nur ein Label. Ansonsten würde ich ein UserControl erstellen mit den nötigen Steuerelementen und gut ist 😁

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

Gelöschter Account
vor 15 Jahren

das nachbauen das ich beschrieben habe benötigt nur ein Label. Ansonsten würde ich ein UserControl erstellen mit den nötigen Steuerelementen und gut ist

ich denke das eine linie zeichnen jeder in einer zeile code hinbekommen sollte und somit wäre es wohl das einfachste, von einem label zu erben und die linie einfach zu zeichnen.

4.942 Beiträge seit 2008
vor 15 Jahren

Ares, gib doch mal ein Beispiel (Screenshot) was du meinst (da du anscheinend ja keine GroupBox meinst).

916 Beiträge seit 2008
vor 15 Jahren

Ich seh das auch wie Jack30lena,

einfach ein eigenes UnderlineLable was von Label erbt und dort die OnPaint Methode überschreiben und die Linie Zeichnen...

Again what learned...

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Ares,

wenn dem Text eine Linie folgt, ist das möglicherweise nichts anders als eine Folge von Unterstrichen.

herbivore

916 Beiträge seit 2008
vor 15 Jahren

class UnderlineLabel : System.Windows.Forms.Label
{
    public UnderlineLabel()
    {
        this.AutoSize = false;
        this.TextAlign = System.Drawing.ContentAlignment.TopLeft;
    }

    [DefaultValue(false)]
    public override bool AutoSize
    {
        get
        {
            return base.AutoSize;
        }
        set
        {
            base.AutoSize = value;
        }
    }

    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
    {
        base.OnPaint(e);
        e.Graphics.DrawLine(Pens.Black, new Point(0, e.ClipRectangle.Bottom - 2), new Point(e.ClipRectangle.Right, e.ClipRectangle.Bottom - 2));
        e.Graphics.DrawLine(Pens.Gray, new Point(1, e.ClipRectangle.Bottom - 1), new Point(e.ClipRectangle.Right, e.ClipRectangle.Bottom - 1));


ich denk mal so was würde es tun...

Again what learned...