您的位置:首页 > 其它

TextBox控件获取焦点并光标正确闪烁

2017-08-17 16:33 253 查看
在使用WinForm开发登录界面时需要实现当鼠标点击账号或密码输入框时默认文字消失同时输入框获取焦点光标正常显示并可以输入文字等内容。在实际开发中使用了label控件和TextBox控件组合实现输入框。实现的逻辑是当鼠标点击覆盖在TextBox控件上的label时TextBox控件获取焦点。实际的效果是必须点击两次才能正确实现期望的效果。经过排查发现是TextBox控件设置了visible属性为false,在label控件的单击事件中先使用Focus方法让TextBox控件获取焦点,然后才设置visible属性为true,但focus时TextBox的visible属性为false,控件不可见并不能获取焦点,所以不能成功。把visible属性在focus之前置为true就可以解决问题。

代码如下。

错误代码:

void lblpassword_Click(object sender, EventArgs e)
{
this.lblpassword.Visible = false;
txtPassword.Focus();
txtPassword.Visible = true;
}

正确代码:
void lblContent_Click(object sender, EventArgs e)
{
this.lblContent.Visible = false;
txtAccount.Visible = true;
txtAccount.Focus();
}

这个问题中控件的属性设置的逻辑正确与否是解决问题的关键。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐