我有一個TextBox,我希望我的用戶輸入格式爲XX:XX:XX的時間值。我已經進行了驗證以確保它們以此格式輸入。但是,現在我想自動在那裏留下冒號。我希望他們在文本框中,當用戶鍵入數字時,他們只是跳過冒號。是否有可能爲TextBox提供某種格式裝飾器?WPF文本框使用默認文本
編輯:我使用WPF 4
我有一個TextBox,我希望我的用戶輸入格式爲XX:XX:XX的時間值。我已經進行了驗證以確保它們以此格式輸入。但是,現在我想自動在那裏留下冒號。我希望他們在文本框中,當用戶鍵入數字時,他們只是跳過冒號。是否有可能爲TextBox提供某種格式裝飾器?WPF文本框使用默認文本
編輯:我使用WPF 4
使用屏蔽文本框如果你想堅持到香草WPF,你可以創建自定義控制添加3個文本框。
將冒號放在它們之間並處理keydown事件以將焦點從一個文本框傳遞到另一個文本框,同時僅接受數字。
再一次:使用工具包可能會少一些工作。
使用三個文本框作爲Erno建議可能是一個更好的解決方案,但你也可以使用TextChanged
事件添加冒號到文本(這可能會混淆用戶),這裏是代碼,將插入第二和第五個字符:
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = sender as TextBox;
if (e.Changes.Count == 1)
{
if (e.Changes.ElementAt(0).AddedLength == 1 && (tb.Text.Length == 2 || tb.Text.Length == 5))
{
tb.Text += ":";
tb.SelectionStart = tb.Text.Length;
}
}
}
看起來不錯,但我寧願留在香草WPF,如果可能的話。我使用的是WPF 4. – s73v3r 2011-02-11 23:43:18