Machen Sie TextBox unbearbeitbar


70

Ich möchte einige TextBoxes in meinem Formular unbearbeitbar machen, aber ich möchte text, dass das klar ist (schwarz nicht grau) und deshalb möchte ich es nicht verwenden

myTextBox.Enabled = false;

Irgendwie möchte ich, dass es deaktiviert wird, aber mit nicht grauer Vorfarbe.

Hat jemand eine Ahnung?


5
warum -1 -1 -1? Ich verstehe, die Antwort ist ein Wort, OK, aber ich kannte dieses eine Wort wirklich nicht. Soll ich nicht fragen
Mahdi Tahsildari

1
Mach dir keine Sorgen! wenige Leute verstehen einfach nicht
Parimal Raj

:) du hast recht @AppDeveloper, ich bin sicher, jeder hat einige dunkle Punkte, die aufgehellt werden müssen. Danke für ihre nette Antwort. Viel Glück.
Mahdi Tahsildari

Entfernen Sie einfach das Textfeld und platzieren Sie dort das Etikett
Uthistran Selvaraj

1
@UthistranS. Kein guter Vorschlag, mein Freund. Auf diese Weise verliere ich die feste Position und Größe sowie den Textumbruchmodus. Ein Etikett wird auf seine Inhaltslänge ausgedehnt, aber ein Textfeld hat eine feste Größe und zeigt den Text in mehreren Zeilen an (Umbruchverhalten), aber das Etikett benötigt mehr Code, um dieses Verhalten beizubehalten.
Mahdi Tahsildari

Antworten:


115

Verwenden der TextBox.ReadOnlyEigenschaft

TextBox.ReadOnly = true;

Für einen nicht grauen Hintergrund können Sie die TextBox.BackColorEigenschaft in SystemColors.WindowFarbe ändern

textBox.BackColor = System.Drawing.SystemColors.Window;

Wenn diese Eigenschaft auf true gesetzt ist, kann der Benutzer den Inhalt des Steuerelements zur Laufzeit nicht ändern. Wenn diese Eigenschaft auf true gesetzt ist, können Sie den Wert der Text-Eigenschaft weiterhin im Code festlegen. Sie können diese Funktion verwenden, anstatt das Steuerelement mit der Enabled-Eigenschaft zu deaktivieren, damit der Inhalt kopiert und QuickInfos angezeigt werden können.


2
Die Eigenschaft gilt TextBox.IsReadOnlyfür WPF .NET 4.5.2, Visual Studio 2015, Update 3 (Version 14.0.25431.01 Update 3).
ecth

17

Verwenden Sie die ReadOnly- Eigenschaft in der TextBox.

myTextBox.ReadOnly = true;

Aber denken Sie daran: TextBoxBase.ReadOnly-Eigenschaft

Wenn diese Eigenschaft auf true gesetzt ist, kann der Benutzer den Inhalt des Steuerelements zur Laufzeit nicht ändern . Wenn diese Eigenschaft auf true gesetzt ist, können Sie den Wert der Text-Eigenschaft weiterhin im Code festlegen . Sie können diese Funktion verwenden, anstatt das Steuerelement mit der Enabled-Eigenschaft zu deaktivieren, damit der Inhalt kopiert und QuickInfos angezeigt werden können.


6

Sie können versuchen, Folgendes zu verwenden:

textBox.ReadOnly = true;
textBox.BackColor = System.Drawing.SystemColors.Window;

Die letzte Zeile ist nur erforderlich, wenn Sie eine nicht graue Hintergrundfarbe wünschen.



3

Einfach in XAML einstellen:

        <TextBox IsReadOnly="True" Style="{x:Null}" />

Damit dieser Text nicht ausgegraut wird.


1

Wenn Sie dies mit XAML tun möchten, setzen Sie die Eigenschaft isReadOnlyauf true.



-1

Enabled = "false" auf der Aspx-Seite


1
Hallo Suraj, willkommen bei Stackoverflow. Danke für Ihre Bemühungen. Meine Frage bezieht sich eigentlich auf Windows Forms-Anwendungen. Tags helfen uns, unsere Fragen in die richtige Kategorie zu bringen.
Mahdi Tahsildari
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.