使TextBox不可编辑


70

我想使TextBox表单上的某些es无法编辑,但是我想使它text清晰(黑色而不是灰色),这就是为什么我不想使用

myTextBox.Enabled = false;

我想以某种方式禁用它,但使用非灰色的前景色。

有人有任何线索吗?


5
为什么-1 -1 -1?我知道,答案是一个字,可以,但是我真的不知道那个字。我不应该问吗
Mahdi Tahsildari

1
好吧,不用担心!很少有人不明白
Parimal Raj

:)您说得对@AppDeveloper,我敢肯定每个人都有一些需要加深的暗点。感谢您的回复。祝好运。
2013年

只需删除文本框并在其中放置标签
Uthistran Selvaraj

1
@UthistranS。我的朋友不是一个好建议,那样我将失去固定的位置和大小以及文本换行模式。标签会拉紧其内容长度,但文本框的大小固定,并以多行显示文本(包装行为),但是标签需要更多代码来维护此行为。
Mahdi Tahsildari

Answers:


115

使用TextBox.ReadOnly属性

TextBox.ReadOnly = true;

对于非灰色背景,可以将TextBox.BackColor属性更改为“SystemColors.Window彩色”。

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

当此属性设置为true时,用户无法在运行时更改控件的内容。将此属性设置为true后,您仍然可以在代码中设置Text属性的值。您可以使用此功能,而不是通过Enabled属性禁用控件,以允许复制内容并显示工具提示。


2
该属性适用TextBox.IsReadOnly于WPF .NET 4.5.2,Visual Studio 2015 Update 3(它表示版本14.0.25431.01 Update 3)。
2015年

17

使用TextBox上的ReadOnly属性。

myTextBox.ReadOnly = true;

但请记住:TextBoxBase.ReadOnly属性

当此属性设置为true时,用户不能在运行时更改控件的内容 。将此属性设置为true后,您仍然可以在code中设置Text属性的值。您可以使用此功能,而不是通过Enabled属性禁用控件以允许复制内容并显示工具提示。


6

您可以尝试使用:

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

仅当您想要非灰色的背景色时,才需要最后一行。




1

如果要使用XAML进行操作,请将属性设置isReadOnlytrue



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.