關於textBox的TextChanged

作者: skitty (aki)   2016-07-15 17:44:11
我在練習VisualC#2015基礎必修上面的程式碼
裡面有一個是利用TextChanged的方法
將輸入的數字乘上金額並自動顯示
因為避免輸入非數字所以有用try...catch..來包住
我的問題是怎麼讓滑鼠點在textBox時能自動清除裡面的數字?
因為catch裡面是寫textBox.Text="0"
等於user點到方塊裡打1顯示會是01
除非整個反白打1才會是1
但是用Text=""會因為轉不成數字變成死迴圈...
code:
private void textBox1_TextChanged(object sender, EventArgs e)
{
try
{
int x = Convert.ToInt32(textBox1.Text)*250;
int y = Convert.ToInt32(textBox2.Text)*150;
label.Text = Convert.ToString(x+y);
}
catch
{
label.Text = "請輸入數字!";
textBox1.Text="0";
}
}
有另一個textBox2_TextChanged寫的是一樣的碼,所以就不重複貼了
作者: yuhaw0715 (kks0123)   2016-07-15 17:51:00
用textbox的mouse_click試試看
作者: enonrick (EnonRick)   2016-07-15 17:58:00
NumericUpDown 可以讓你只填數字,但你在學習 winform的邪惡,那你可以配合MouseClick 事件與TextBox.SelectAll(),判斷部份用 int.TryParse除非真的沒辨法,try catch 不要用來做常規防呆
作者: Litfal (Litfal)   2016-07-15 18:03:00
有Validating事件可以用...
作者: YahooTaiwan (超可愛南西我老婆)   2016-07-15 18:54:00
int.TryParse 可以避免轉型發生 exception

Links booklink

Contact Us: admin [ a t ] ucptt.com