簡體   English   中英

TextBox驗證 - C#

[英]TextBox Validation - C#

我在C#Application的文本框驗證方面遇到了很多困難。 問題是,所述文本框應該只接受十進制值。 所以這意味着,除了'。'之外,不應該有任何字母或任何其他符號。 符號。 字母過濾器,我可以處理。 但是,我並不知道如何設法過濾'。'的數量。 文本框應該接受。 如果有人知道如何做到這一點,請給我一個想法。

非常感謝你 :)

decimal value;
bool isValid = decimal.TryParse(textBox.Text, out value);

if (!isValid)
{
    throw new ArgumentException("Input must be a decimal value");
}

這應該工作!!!

僅修改一個小數

    private void txtType_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Back || (e.KeyChar == (char)'.') && !(sender as TextBox).Text.Contains("."))
        {
            return;
        }
        decimal isNumber = 0;
        e.Handled = !decimal.TryParse(e.KeyChar.ToString(), out isNumber);
    }

只是一個想法:如果你監控小數位,只需在你的控制中保持一個bool標志說“我已經有一個點”; 后續的點無效。

或者,在檢查小數位時,您可以使用Contains

if (textbox.Text.Contains("."))

另外,請查看MSDN(NumericTextBox)上提供的此示例:

http://msdn.microsoft.com/en-us/library/ms229644(VS.80).aspx

使用正則表達式驗證:

^([0-9]*|\d*\.\d{1}?\d*)$

該站點有一個正則表達式驗證庫(包括數字相關),您會發現它很有用:

http://regexlib.com/Search.aspx?k=decimal&c=-1&m=-1&ps=20

請改用MaskedTextBox並將掩碼設置為僅接受小數。

暫無
暫無

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

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