簡體   English   中英

檢測文本框中的小數

[英]Sensing a decimal in a textBox

我正在為 Windows 手機開發一種計算器。

它不需要使用小數。 (誰需要.39的一塊磚)

我如何檢測到字符串或文本框中有小數點?

編輯:謝謝@Bala R 和@Afnan。 但我所追求的也是過濾掉字母的東西。 我的答案在下面。

修改Bala R代碼給出

private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text.Contains(".") || textBox1.Text.Contains(","))
                textBox1.Text = textBox1.Text.Replace(".", string.Empty).Replace(",", string.Empty);
        }

這將刪除在寫入輸入時輸入的無效字符

您可以使用它來查看字符串中是否有“句點”

 bool hasDecimal = textBox.Text.Contains(".") 

但是對於十進制值來說,不止一個句點是不好的。

我認為您需要檢查該值是否為有效的十進制值。

使用TryParse方法:

decimal value;

string textValue = textBox.Text;
bool isDecimal = decimal.TryParse(textValue, out value)

這是我發現效果最好的方法:

bool bNeedToUpdate = false;

StringBuilder szNumbersOnly = new StringBuilder();

TextBox textSource = sender as TextBox;

if (null == textSource)

return;

foreach (char ch in textSource.Text)

{

if (("0123456789").Contains(ch.ToString()))

{

szNumbersOnly.Append(ch);

}

else

{

bNeedToUpdate = true;

}

}

if (bNeedToUpdate)

{

textSource.Text = szNumbersOnly.ToString();

textSource.SelectionStart = szNumbersOnly.Length;

}

我從回答了這個類似問題的論壇版主 Erin Fleck 上刷了這個答案。

@Afnan 獲得綠色支票,因為他/她/它回答了我最初的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM