內部表格我想添加txtbox,它應該接受輸入爲小數點後2位小數或無小數,如果用戶在db級別只輸入1,則將添加小數點,如果用戶輸入1.00更好。接受並驗證winforms中的十進制輸入
我是winforms的新手,我需要建議(步驟來完成)描述的情況和用戶輸入的驗證,只接受可能的數字。 (點)beetween數字。
我不需要沉重的做法,因爲我只有2種形式這麼簡單,具體的例子可以。
感謝
內部表格我想添加txtbox,它應該接受輸入爲小數點後2位小數或無小數,如果用戶在db級別只輸入1,則將添加小數點,如果用戶輸入1.00更好。接受並驗證winforms中的十進制輸入
我是winforms的新手,我需要建議(步驟來完成)描述的情況和用戶輸入的驗證,只接受可能的數字。 (點)beetween數字。
我不需要沉重的做法,因爲我只有2種形式這麼簡單,具體的例子可以。
感謝
你可以這樣做:
首先,你可以使用一個按鈕來驗證
private void btnValdiate_Click(object sender, EventArgs e)
{
decimal value;
if(Decimal.TryParse(textBox1.Text,out value))
{
bool check = TwoDecimalPlaces(value);
if(check)
{
//do something
}else
{
//do something else
}
}else
{
// do something
}
}
private bool TwoDecimalPlaces(decimal dec)
{
decimal value = dec * 100;
return value == Math.Floor(value);
}
其次,你可以通過使用TextChanged
事件如做:
private void textBox1_TextChanged(object sender, EventArgs e)
{
decimal value;
if(Decimal.TryParse(textBox1.Text,out value))
{
bool check = TwoDecimalPlaces(value);
if(check)
{
//do something
}else
{
//do something else
}
}else
{
// do something
}
}
private bool TwoDecimalPlaces(decimal dec)
{
decimal value = dec * 100;
return value == Math.Floor(value);
}
或者您也可以使用Regex
看看:
http://regexlib.com/DisplayPatterns.aspx?cattabindex=2&categoryId=3&AspxAutoDetectCookieSupport=1
你應該看看FormatStrings
http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
如何與一個WinForms對象我會做,這是貫徹落實Validating
事件,並使用此不僅爲輸入驗證,使某些用戶確實輸入了一個數字,但也重新格式化了他們的輸入。
private void textBox1_Validating (object Sender, CancelEventArgs e)
{
TextBox tx = Sender as TextBox;
double test;
if(!Double.TryParse(tx.Text, out test))
{
/* do Failure things */
}
else //this is the formatting line
tx.Text = test.ToString("#,##0.00");
}
在開始時使用'Sender作爲TextBox'模式的原因是您可以將其作爲通用的「十進制輸入驗證」方法。如果您碰巧在一個頁面上有5個文本框,都需要2位小數點數字驗證,則可以對所有這些方法重複使用相同的方法。 – Nevyn