2011-02-11 117 views
1

我有一個TextBox,我希望我的用戶輸入格式爲XX:XX:XX的時間值。我已經進行了驗證以確保它們以此格式輸入。但是,現在我想自動在那裏留下冒號。我希望他們在文本框中,當用戶鍵入數字時,他們只是跳過冒號。是否有可能爲TextBox提供某種格式裝飾器?WPF文本框使用默認文本

編輯:我使用WPF 4

回答

0

使用屏蔽文本框如果你想堅持到香草WPF,你可以創建自定義控制添加3個文本框。

將冒號放在它們之間並處理keydown事件以將焦點從一個文本框傳遞到另一個文本框,同時僅接受數字。

再一次:使用工具包可能會少一些工作。

0

使用三個文本框作爲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; 
     } 
    } 
}