我有哪些我想有模仿“软描述”像那些在StackOverflow上的标题和标签盒发现了一个标准的TextBox控件。实质上,当用户的焦点进入控件时,它在这种情况下隐藏描述(“用户名”),并将对齐和颜色设置为标准文本控件的对齐和颜色。当用户离开文本框时,我想检查用户是否实际输入了任何内容,并将用户名显示备份到其他位置。修改上Leave事件TextBox控件防止Tab键进行控制
例如:
private void tbUsername_Enter(object sender, EventArgs e)
{
if (tbUsername.TextAlign == HorizontalAlignment.Center)
{
tbUsername.TextAlign = HorizontalAlignment.Left;
tbUsername.ForeColor = SystemColors.ControlText;
tbUsername.Text = String.Empty;
}
}
private void tbUsername_Leave(object sender, EventArgs e)
{
if (tbUsername.Text == String.Empty)
{
tbUsername.TextAlign = HorizontalAlignment.Center;
tbUsername.ForeColor = SystemColors.InactiveCaption;
tbUsername.Text = "Username";
}
}
不幸的是,当我设置这些事件,用户不能切换出该用户名的控制。控件只是闪烁并控制返回到文本框控件本身,直到用户输入了一些内容,跳过事件主体。
如果我在事件调用this.SelectNextControl()
,则该事件进入一个无限循环。
有没有人看到我在做什么错了?
有趣..似乎有什么东西与textAlign设置。如果我发表评论,似乎没问题。 – SwDevMan81 2010-02-18 19:43:03
+1好找。希望其中一个解决方法能够为你工作,尽管这两者都不是最优的。可以将其发布到MSDN论坛(http://social.msdn.microsoft.com/Forums/en-US/categories)以查看他们是否知道发生了什么。 – SwDevMan81 2010-02-18 20:39:44