我有一個困擾了我一段時間的問題。我嘗試了一些解決方案,但他們沒有奏效。價格/現金/ C上的貨幣的文本框#
我有一個用於現金輸入的文本框(例如999,99美元)。不過,我需要自動輸入「,」和「。」。正確顯示值。
我嘗試了兩種解決方案。其中之一是這樣的:
private void tx_ValorUnidade_TextChanged(object sender, EventArgs e)
{
string value = tx_ValorUnidade.Text.Replace(",", "").Replace("R$", "");
decimal ul;
//Check we are indeed handling a number
if (decimal.TryParse(value, out ul))
{
//Unsub the event so we don't enter a loop
tx_ValorUnidade.TextChanged -= tx_ValorUnidade_TextChanged;
//Format the text as currency
tx_ValorUnidade.Text = string.Format(System.Globalization.CultureInfo.CreateSpecificCulture("pt-BR"), "{0:C2}", ul);
tx_ValorUnidade.TextChanged += tx_ValorUnidade_TextChanged;
}
}
然而,結果是非常奇怪的。詞可能無法就這一個,所以我錄製的視頻:http://www.screenr.com/2sLH
另一種是這樣的:
private void tx_ValorUnidade_KeyUp(object sender, KeyEventArgs e)
{
if (!string.IsNullOrEmpty(tx_ValorUnidade.Text))
{
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
int valueBefore = Int32.Parse(tx_ValorUnidade.Text, System.Globalization.NumberStyles.AllowThousands);
tx_ValorUnidade.Text = String.Format(culture, "{0:N0}", valueBefore);
tx_ValorUnidade.Select(tx_ValorUnidade.Text.Length, 0); *
}
}
這一個有點兒工作,但有一個問題:如果用戶想要插入somethink像$ 10,00它不能。它也在5個數字後崩潰。一個視頻到:http://www.screenr.com/1sLH
作爲原始參考,我從otherquestions這裏得到了2個代碼。
我該如何解決?我使用的例子錯了嗎?任何想法都是可喜的。
不幸的是它不適用於Compact Framework – dzerow