簡體   English   中英

如何從文本框中獲取號碼

[英]How to get a number from a textbox

我有3個文本框,我希望用戶在其中輸入任何數字以得到答案。

這是我到目前為止的代碼:

int firstNumber;
int secondNumber;
int thirdNumber;
int answer;
firstNumber = 100;
secondNumber = 75;
thirdNumber = 50;
answer = firstNumber + secondNumber * thirdNumber;
MessageBox.Show(answer.ToString());

要將字符串轉換為int,請使用Int32.ParseInt32.TryParseConvert.ToInt32

int firstNumber = Int32.Parse(firstNumberTextBox.Text);
//throws exception if not convertible

要么

int firstNumber;
bool result = Int32.TryParse(firstNumberTextBox.Text, out firstNumber);
//return false if not convertible

要么

int firstNumber;
result = Convert.ToInt32(firstNumberTextBox.Text);
//throws exception if not convertible

使用Convert.ToInt32(String)方法等效於將值傳遞給Int32.Parse(String)方法。 值是使用當前線程區域性的格式約定來解釋的。

如果您不想在轉換失敗的情況下不處理異常,則可以調用Int32.TryParse方法。 它返回一個Boolean值,該值指示轉換是成功還是失敗。

您可以使用int而不是Int32

因此,在您的情況下,似乎int.TryPars更適合:

int firstNumber;
int secondNumber;
int thirdNumber;
int answer;
int.TryParse(firstNumberTextBox.Text, out firstNumber);
int.TryParse(secondNumberTextBox.Text, out secondNumber);
int.TryParse(thirdNumberTextBox.Text, out thirdNumber);
answer = firstNumber + secondNumber * thirdNumber;
MessageBox.Show(answer.ToString());

這里是如何使用Convert.ToInt32()方法的,

int firstNumber;
int secondNumber;
int thirdNumber;
int answer;
firstNumber = Convert.ToInt32(textBox1.Text);
secondNumber = Convert.ToInt32(textBox2.Text);
thirdNumber = Convert.ToInt32(textBox2.Text);
answer = firstNumber + secondNumber* thirdNumber;
MessageBox.Show(answer.ToString());

但是這里的問題是當textbox的值不能轉換為整數時,您的應用程序將給出錯誤。

正如已經指出的,如果用戶鍵入的值不是數字,則Int32.TryParse將保護您免受異常侵害。

但是我建議防止用戶輸入無效值。 您可以通過處理KeyPress事件來實現

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
        (e.KeyChar != '.'))
    {
        e.Handled = true;
    }

    // only allow one decimal point
    if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
    {
        e.Handled = true;
    }
}

檢查此帖子以獲取更多詳細信息。

這樣,您將確保輸入有效,並且使用Int32.ParseConvert.ToInt32是安全的。

創建,你有3個窗體或窗口TextBoxes命名firstNumbersecondNumberthirdNumber比的計算可以做這樣的事情

MessageBox.Show((Convert.ToInt32(firstNumber.Text) +
                 Convert.ToInt32(secondNumber.Text) *
                 Convert.ToInt32(thirdNumber.Text)).ToString());

更少的代碼可以完成相同的事情(可能更好)。

  1. 創建一個窗體或窗口,您在其中具有3個文本框,分別命名為firstNumber,secondNumber,thirdNumber。
  2. 測試數字:
 private void TxtBox1_KeyPress(object sender, KeyPressEventArgs e) { if (!Char.IsDigit(e.KeyChar)) e.Handled = true; } //To allow for backspace: private void TxtBox1_KeyPress(object sender, KeyPressEventArgs e) { if (!(Char.IsDigit(e.KeyChar) && (e.KeyChar == (char)Keys.Back))) e.Handled = true; } 

如果要添加其他允許的鍵,請查看“鍵”枚舉並使用上面的方法。 3.要將字符串轉換為int,請使用Int32.Parse。
4.添加並顯示答案。

暫無
暫無

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

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