在windows應用程序文本框中,用戶只能輸入十進制值,其中小數點前六位數字是允許的,小數點後兩位數字。總位數不能超過8)如何限制文本框輸入十進制值,其中允許小數點前六位數字和小數點後兩位數字
---用戶應該能夠使用刪除和返回按鈕。
示例: -
> Valid - 123456.22 , 12.22,.33,0.44,123.45(123456.22 - total digits 8)
> Invalid - 1234567.22,123.222,-88.99,-888.999
下面是我所用於限制正則表達式。
public bool IsDecimalLimitedtoTwoDigits(string inputvalue)
{
Regex isnumber = new Regex(@"^[\d]{1,6}([.]{1}[\d]{1,2})?$");
return isnumber.IsMatch(inputvalue);
}
上面的代碼工作正常,當我在Datagridview驗證事件作爲用戶離開單元格。
現在我對用於使用上述方法的Textbox事件感到困惑。
==>我想限制用戶輸入錯誤的數據。所以我不使用離開/驗證事件和上面的正則表達式不符合條件(123456.22 - 總數字8)。所以請幫助我正則表達式也是如此。
謝謝, Prathap。
但驗證時纔會觸發當焦點從控件移出。我使用了textbox驗證事件,它對正則表達式正常工作。我想在用戶輸入數據時進行驗證。 – user2859242
哦,對,我現在明白了。你可以用'Mask'屬性來使用'MasktedTextBox'嗎?正則表達式不支持,但你需要使用這裏描述的格式http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.mask(v=vs.80).aspx –
由於正則表達式可用,並在我的應用程序的大部分地方使用,我不想現在使用maskedtextbox。我只是想知道如何在這種情況下使用keypress/keydown事件。 – user2859242