Laden...

Label in Winforms zur Laufzeit markieren

Erstellt von FraBoh vor 19 Jahren Letzter Beitrag vor 19 Jahren 3.313 Views
F
FraBoh Themenstarter:in
49 Beiträge seit 2004
vor 19 Jahren
Label in Winforms zur Laufzeit markieren

Tag zusammen,
ich würde gerne wissen, wie ich es anstellen kann, den Text eines Labels zur Laufzeit zu markieren, um ihn mit Copy/Paste zum Beispiel in einen Text Editor zu kopieren. Habe da per googlen nichts gefunden und meine Bücher gehen auf dieses Thema auch nicht ein.
Hat jemand eine Idee?
Danke schon mal im vorraus
Frank

I
79 Beiträge seit 2004
vor 19 Jahren

sehe ich das richtig das dudas händisch mit der maus machen willst ???

F
FraBoh Themenstarter:in
49 Beiträge seit 2004
vor 19 Jahren

Ja, genau. Das Label wird zur Laufzeit mit Text gefüllt, der aus einer Datei ausgelesen wird. Dieser Text variiert. Nun möchte ich diesen Text mit der Maus markieren, ganz oder teilweise, wie zum Beispiel in einem Textfeld, um die Möglichkeit zu haben, diesen Text in einer anderen Applikation einzufügen. Also per Strg-C und STRG-V bzw. per Kontext-Menü.
Ich hoffe, ich war damit ausführlicher.
Gruß, Frank

C
202 Beiträge seit 2004
vor 19 Jahren

ok nur so ne frage aber warum nimmst du nicht die Textbox dafür? die kannst du ja Readonly setzen.

Mfg
andi

I
79 Beiträge seit 2004
vor 19 Jahren

dann verstehe ich aber nicht warum du nicht einfach eine richtextbox nimmst ???
da kannst makieren, kopieren, einfügen, ausschneiden ???

du kannst es sogar per programm machen

this.textBox.SelectAll();
this.textBox.Copy();
this.textBox.Paste();

aber wenn es unbedingt ein label sein muß :

würde ich dem label ein click-event zuweisen

this.label.Click += new System.EventHandler(this.copieren);

und dann eine methode schreiben die den label.text in eine unsichtbare textbox kopiert...

this.unsichtbaretextbox.text = String.Copy(this.label.text)

und dann mit

this.unsichtbaretextbox.SelectAll();
this.unsichtbaretextbox.Copy();

in den zwischenspeicher kopieren....

((das wäre meine lösung, bestimmt geht es noch eleganter ???))

F
FraBoh Themenstarter:in
49 Beiträge seit 2004
vor 19 Jahren

Weil Textboxen viel mehr Platz brauchen,die Labels in dem Umfeld optisch wesentlich ansprechender sind und die Form mit 30 Textboxen ziemlich unübersichtlich wird. Textboxen wecken generell die Begehrlichkeit, Daten zu verändern. Die Labels zeigen ausschließlich Informationen an.
Beispiel: Systemsteuerung von Windows / System. Reiter Computername.
Die Beschreibung dort kann ich ändern. Ist auch OK. Computername und Arbeitsgruppe werden dort in Labels nur gespiegelt, sind dort nicht änderbar, was auch OK ist. trotzdem können sie dort mit der Maus markiert werden.
Das ich Textboxen verwenden könnte, wußte ich schon selbst. Aber wenn ich auf meinem Form 40 Textboxen verteile, sieht das ziemlich unübersichtlich aus. Die 3 Textboxen, die veränderliche Daten aufnehmen sind durch diese Trennung wesentlich einfacher zu identifizieren.
Gruß, Frank

N
4.644 Beiträge seit 2004
vor 19 Jahren

Original von FraBoh
Beispiel: Systemsteuerung von Windows / System. Reiter Computername.
Die Beschreibung dort kann ich ändern. Ist auch OK. Computername und Arbeitsgruppe werden dort in Labels nur gespiegelt, sind dort nicht änderbar, was auch OK ist. trotzdem können sie dort mit der Maus markiert werden.

Woher weißt Du das, dass Labels sind?
Klick mal einfach mit der Maus in so ein "Label", dann blinkt das Caret.
Ich würde sagen das sind TextBoxen und zwar mit BorderStyle = None.

F
FraBoh Themenstarter:in
49 Beiträge seit 2004
vor 19 Jahren

Hey, Noodles,
das ist ja die Lösung, die ich haben wollte. Ich war immer der Meinung dies wären Labels. So macht das natürlich alles Sinn. Sind oft die kleinigkeiten, die einem das Leben schwer machen. Ich war von der Darstellungsart irgendwie auf Labels fixiert.
Dooooooooooonke
Gruß frank