在C#中,我正在为一个带有两个文本框的LAN信使创建一个表单窗口。我需要创建一个特定的文本框作为只读,但提交给它的任何文本都显示为灰色,这是不可取的。有什么办法可以预防吗?
答案 0 :(得分:22)
我会使用文本框并将ReadOnly设置为true,将ForeColor设置为Color.Black,将BackColor设置为Color.White。这样您仍然可以选择文本并使用Ctrl-C复制它。
答案 1 :(得分:6)
您可以使用标签或KeyPress事件中的文本框替换它,将handle设置为true:
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
答案 2 :(得分:2)
您可以通过设置文本框 ForeColor 属性来设置文本的颜色。
例如:
myTextBox.ForeColor = Color.Black
答案 3 :(得分:1)
为了使文本框在只读时保持白色(或窗口),必须将BackColor属性显式设置为Window。要执行此操作,必须先将BackColor设置为其他值,然后再返回Window。 backcolor属性应该变为粗体,表示它不再是默认值。
答案 4 :(得分:0)
灰色表示文本框的ReadOnly状态。它是用户的视觉指示,用户无需输入文本即可发现文本框实际上已被禁用。
如果您只需要readonly行为,那么最好使用Label。