C#中的只读文本框

在C#中 ,我正在为一个带有两个文本框的LAN信使创建一个表单窗口。 我需要创建一个特定的文本框作为只读,但提交给它的任何文本都显示为灰色,这是不可取的。 有什么办法可以预防吗?

我将使用文本框并将ReadOnly设置为true,ForeColor设置为Color.Black,将BackColor设置为Color.White。 这样,您仍然可以选择文本并使用Ctrl-C进行复制。

您可以使用标签或KeyPress事件中的文本框替换它,将handle设置为true:

void textBox1_KeyPress(object sender, KeyPressEventArgs e) { e.Handled = true; } 

您可以通过设置Textbox ForeColor属性来设置文本的 颜色

例如:

myTextBox.ForeColor = Color.Black

为了使文本框在只读时保持白色(或Window),必须将BackColor属性显式设置为Window。 要执行此操作,必须先将BackColor设置为其他值,然后再返回Window。 backcolor属性应变为粗体,表示它不再是默认值。

灰色表示文本框的ReadOnly状态。 它是对用户的视觉指示,该用户不需要输入文本来发现文本框实际上已被禁用。

如果您只需要readonly行为,那么最好使用Label。