[英]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.Parse
或Int32.TryParse
或Convert.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.Parse
或Convert.ToInt32
是安全的。
創建,你有3個窗體或窗口TextBoxes
命名firstNumber
, secondNumber
, thirdNumber
比的計算可以做這樣的事情
MessageBox.Show((Convert.ToInt32(firstNumber.Text) +
Convert.ToInt32(secondNumber.Text) *
Convert.ToInt32(thirdNumber.Text)).ToString());
更少的代碼可以完成相同的事情(可能更好)。
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.