VC# Cursor blinken bei read only TextBox

Gast #736170
Lesenswert?

Hallo,

habe eine TextBox und in der möchte ich nur Informationen ausgeben und 
keine eingeben. Folglich habe ich unter Property das Read only auf true 
gesetzt.

Wenn ich nun in die Textbox klicke, kann ich wie gewollt nichts 
eintippen, es erscheint aber ein "blinkender Eingabe Strich" links oben 
in der Textbox.

Der macht nun eigentlich keinen Sinn und ich würde ihn auch gerne 
ausblenden.

Weiss aber nicht wie.
Gast #736360
Lesenswert?

jo, das hatte ich auch schon gesetzt, dann kommt aber der Text, den ich 
dort anzeigen tu, leicht gegraut und nicht mehr so kräftig schwarz 
daher.

Ist eine Lösung, mit der ich leben könnt, sofern ich nichts besseres 
finde.
#736379
Lesenswert?

Gast wrote:

> Der macht nun eigentlich keinen Sinn und ich würde ihn auch gerne
> ausblenden.

Doch, das macht sehr wohl Sinn.
Der Cursor ermöglicht dir nämlich, dass du einzelne Zeichen
oder die ganze Text Sequenz selektieren kannst und mit
Strg+C in die Zwischenablage kopieren kannst. Daraufhin wechselst
du das Programm, zb zu Notepad oder zu Excel oder zu Word oder sonst
irgendeinem anderem Programm und setzt den so in die Zwischenablage
kopierten Text mit Strg+V wieder ein. (Das kann auch eine andere
Textbox in deiner Anwendung sein).

Wenn du auch dieses nicht willst, dann macht allerdings eine
Textbox überhaupt keinen Sinn mehr. Die Textbox ist dann ganz
einfach das falsche Werkzeug und du willst eigentlich ein Label
an dieser Stelle haben.

Aber: Dein Benutzer entscheidet, ob ein Copy&Paste für ihn Sinn
macht. So leichtfertig würde ich ihm dieses mächtige Werkzeug
nicht aus der Hand geben. Es macht nämlich keinen Spass irgendwelche
Rechenergebnisse mit der Hand abzutippen, wenn ich sie auch ganz
einfach mit Copy&Paste übernehmen kann. Und du als Programmierer
weist nie, was dein Benutzer mit errechneten Ergebnissen alles
anfangen will.
Gast #736709
Lesenswert?

Hi,

Am besten leitest du eine eigene Klasse von RichTextbox ab und setzt die 
Controlstyles (bei der Textbox bleibt trotzdem ein blinkender Cursor, 
zumindest unter Vista):

class ReadonlyTextBox : RichTextBox {
    public ReadonlyTextBox ( ) {
        this.SetStyle ( ControlStyles.UserMouse, true );
        this.SetStyle ( ControlStyles.Selectable, false );
    }
}

greetz dechavue

PS: Wie meiene Vorposter schon sagten solltest du es dir nochmal gut 
überlegen ob du wirklich das Markieren / Kopieren unterbinden willst.
#736723
Lesenswert?

dechavue wrote:

> PS: Wie meiene Vorposter schon sagten solltest du es dir nochmal gut
> überlegen ob du wirklich das Markieren / Kopieren unterbinden willst.

Yep. Ich verfluche heute noch die Microsoft Programmierer,
die im Windows Taschenrechner entschieden haben, dass Copy&Paste
nicht funktionieren soll.
Wäre ja auch zu einfach. Mit dem Taschenrechner eine Berechnung
machen und das Ergebnis in Word (oder auch in dieses Forum)
ganz einfach zu übernehmen.
#736950
Lesenswert?

Markus Volz wrote:
> @Karl heinz Buchegger:
> Hast Du in den letzten Jahren mal das Menu "Bearbeiten" im
> Windows-Taschenrechner angeschaut? Ich weiß leider nicht, seit wann
> Copy+Paste implementiert sind. Aber es ist schon eine ganze Zeit her...
> ;-)

Jetzt wo du's sagst.
Trotzdem würde ich mir wünschen, dass ich direkt aus dem Edit
Feld heraus den Copy machen kann, so wie man das in jedem anderen
Programm auch machen kann.


Wusstet ihr eigentlich, dass es in den Windows-Jugendjahren
einen Styleguide für Windows Programme, herausgegeben von
Microsoft, gab?
Und wusstet ihr auch, dass Microsoft mit bei den Ersten war, die
sich nicht daran hielten?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren