C#中的只读文本框

Avi*_*vik 6 c# textbox

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

Ora*_*son 22

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


ben*_*rce 6

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

void  textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)

  • 我个人讨厌这种方法,因为用户仍然认为他们可以编辑文本,然后当他们输入的字母什么都不做时会感到惊讶. (3认同)

Cer*_*rus 0

灰色表示文本框的只读状态。这是向用户提供的视觉指示,用户无需输入文本即可发现文本框实际上已被禁用。

如果您只需要只读行为,那么最好使用标签。