C#中的只读文本框

时间:2009-02-26 05:54:14

标签: c# textbox

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

5 个答案:

答案 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。