从禁用的文本框中删除焦点矩形

时间:2017-10-03 22:06:16

标签: c# .net winforms textbox desktop-application

所以我的场景是有一个带有三个文本框和一个按钮的表单。单击该按钮可设置textBox1.Enabled = false,textBox2.Enabled = false和textBox3.Focus()。

enter image description here

我遇到的问题是,如果textBox1或textBox2在用户单击按钮时具有焦点,则文本框将变为禁用但保留焦点矩形的灰色版本。就像表单没有重绘禁用的文本框一样。请注意附带的屏幕截图,注意第一个和第二个文本框之间的区别。

如何确保将焦点移至textBox3并摆脱textBox1周围的焦点矩形?

1 个答案:

答案 0 :(得分:2)

我不确定这种行为是否是一个错误,但我找到了处理它的方法。诀窍是使用BorderStyle属性。

private void button1_Click(object sender, EventArgs e)
{
    textBox3.Focus();
    var borderStyle = textBox1.BorderStyle;
    textBox1.BorderStyle = BorderStyle.None;
    textBox2.BorderStyle = BorderStyle.None;
    textBox1.Enabled = false;
    textBox2.Enabled = false;
    textBox1.BorderStyle = borderStyle;
    textBox2.BorderStyle = borderStyle;
    textBox1.Refresh();
}
相关问题