我有哪些我想有模仿「軟描述」像那些在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