所以我的场景是有一个带有三个文本框和一个按钮的表单。单击该按钮可设置textBox1.Enabled = false,textBox2.Enabled = false和textBox3.Focus()。
我遇到的问题是,如果textBox1或textBox2在用户单击按钮时具有焦点,则文本框将变为禁用但保留焦点矩形的灰色版本。就像表单没有重绘禁用的文本框一样。请注意附带的屏幕截图,注意第一个和第二个文本框之间的区别。
如何确保将焦点移至textBox3并摆脱textBox1周围的焦点矩形?
答案 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();
}