【发布时间】:2009-02-26 05:54:14
【问题描述】:
在C# 中,我正在为带有两个文本框的局域网信使创建一个表单窗口。我需要将特定的文本框创建为只读的,但是提交给它的任何文本都显示为灰色,这是不可取的。有什么办法可以预防吗?
【问题讨论】:
在C# 中,我正在为带有两个文本框的局域网信使创建一个表单窗口。我需要将特定的文本框创建为只读的,但是提交给它的任何文本都显示为灰色,这是不可取的。有什么办法可以预防吗?
【问题讨论】:
我会使用一个文本框并将 ReadOnly 设置为 true,将 ForeColor 设置为 Color.Black,并将 BackColor 设置为 Color.White。这样您仍然可以选择文本并使用 Ctrl-C 进行复制。
【讨论】:
您可以将其替换为标签或 KeyPress 事件中的文本框,设置为 true:
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
【讨论】:
您可以通过设置 Textbox ForeColor 属性来设置文本的颜色。
例如:
myTextBox.ForeColor = 颜色.黑色
【讨论】:
为了使文本框在只读状态下保持白色(或窗口),您必须将 BackColor 属性显式设置为 Window。为此,您必须先将 BackColor 设置为其他值,然后再设置回 Window。 backcolor 属性应该变为粗体,表明它不再是默认值。
【讨论】:
灰色表示文本框的只读状态。这是一个视觉指示,用户无需输入文本即可发现文本框实际上已禁用。
如果您只需要只读行为,最好使用 Label。
【讨论】: