我試圖建立在C#中的TextBox
/Windows窗體項目,這樣,當使用鍵盤或數字鍵盤在價格的用戶類型,文本框會格式化輸入序列看起來像一個價格。轉換序列爲價格
示例:用戶類型1-5-0(減去破折號),文本框的文本值將爲1.50美元。
這裏是我想要的代碼:
private string KeySequence;
// ...
private void TxtValue_KeyPress(object sender, KeyPressEventArgs e)
{
if(char.IsDigit(e.KeyChar))
{
KeySequence += e.KeyChar.ToString();
if (KeySequence.Length > 0)
{
txtValue.Text = "$" + (decimal.Parse(KeySequence)/100).ToString("0.00");
}
}
}
的問題是,每當我在一個值類型,第一個字符始終是我打的最後一個關鍵,其次是「$」和價錢。所以如果我輸入150,格式化文本顯示爲:0$1.50
。
我就在想,這是由於KeyDown
事件KeyPress
之前被調用,所以我試圖與處理代碼爲壓制它:
private void TxtValue_KeyDown(object sender, KeyEventArgs e)
{
txtValue.Clear();
}
但是,這仍然沒有工作。
我能做些什麼來阻止第一個字符出現?
要取消按鍵,設定'e.Handled'到TRUE; –
工作就像一個魅力。謝謝! –