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?

Mahdi Tahsildari
quelle
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.

Parimal Raj
quelle
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.

Habib
quelle
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.

Alina B.
quelle
3

Wenn Sie Ihre wollen TextBoxnicht bearbeitet werden, sollten Sie es machen Readonly .

Marius Bancila
quelle
3

Einfach in XAML einstellen:

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

Damit dieser Text nicht ausgegraut wird.

Jan Abramek
quelle
1

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

Ein Wolf
quelle
0

Dies ist für GridView.

 grid.Rows[0].Cells[1].ReadOnly = true;
Dilip Kumar Choudhary
quelle
-1

Enabled = "false" auf der Aspx-Seite

Suraj Pandey
quelle
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