簡體   English   中英

文本框最大/最小數值C#

[英]Textbox maximum/minimum numeric values C#

我想創建一個if語句來驗證文本框中的輸入數字是否介於0到100之間。例如:

NumericUpDown num = new NumericUpDown();

num.Maximum = 100;
num.Minimum = 0;

if (int.Parse(txtMid.Text) < num.Minimum && int.Parse(txtMid.Text) > num.Maximum)
{
    MessageBox.Show("Please input 0 to 100 only.");
}

就這樣。 提前致謝。

您需要將txtbox1.Text字符串解析為整數:

int val = 0;
bool res = Int32.TryParse(txtbox1.Text, out val);
if(res == true && val > -1 && val < 101)
{
    // add record
}
else
{
    MessageBox.Show("Please input 0 to 100 only.");
    return;
}

另外,您需要測試一個或兩個文本框嗎? 如果它只是一個並且你需要間隔0,100,那么你的條件是錯誤的,因為它總是返回false(一個數字不能同時<= -1和> = 101)。

非常重要 :我已經顛倒了你的if / else:你必須在else中打印錯誤並在if中添加記錄。

首先將文本轉換為Int然后您可以比較它。 但要小心輸入的文本可能不是數字,例如用戶可以輸入abc而不是12

您可以使用Int.TryParse(String)方法檢查文本框是否包含有效數字。 如果該數字有效,則應用下面的if條件

if(Convert.ToInt32(txtbox1.Text) <= -1 && Convert.ToIn32(textbox2.Text >= 101)
{

}

其他答案回答了您的直接問題,但輸入數字的更好選擇是使用NumericUpDown控件將輸入限制為數字,並提供旋轉控件。

基本上你想要做的是以下內容:

  • 從文本框中獲取當前文本。
  • 將文本轉換為數字(使用類型的TryParse方法)。
  • 如果文本無法轉換為數字,請通知用戶並將文本框還原為上次已知的正確值(如果不存在此值,則將空字符串還原為空字符串) 如果不這樣做,您將使文本框保持無效狀態,這可能不是您想要的。
  • 如果文本可以轉換,請檢查它是否在給定范圍內。 如果是,則將其存儲為最后已知的良好值以供以后使用。 如果沒有,請通知用戶並將文本框恢復為上次已知的正常值。

TextBox.Text屬性將返回值作為字符串。 所以,首先你必須將該字符串解析為整數。 您可以使用以下代碼:

int num = -2;
bool conversionSuccessful = int.tryParse(txtbox1.Text, out num);
if(conversionSuccessful) {
    if (num <= -1 && num >= 101) {
        MessageBox.Show("Please input 0 to 100 only.");
    return;
    }
}

您可以在此處此處找到有關轉換的更多信息

int val1=0,val2=0
try
{
val1 = Convert.ToInt32(txtbox1.Text);
val2 = Convert.ToIn32(textbox2.Text); 
}
catch
{
MessageBox.Show("Invalid Input");
}

// Do all the Checking here....

暫無
暫無

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

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