關於textBox的TextChanged

看板C_Sharp (C#)作者 (aki)時間9年前 (2016/07/15 17:44), 9年前編輯推噓1(106)
留言7則, 4人參與, 最新討論串1/1
我在練習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寫的是一樣的碼,所以就不重複貼了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.212.41 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1468575853.A.5D0.html

07/15 17:51, , 1F
用textbox的mouse_click試試看
07/15 17:51, 1F

07/15 17:58, , 2F
NumericUpDown 可以讓你只填數字,但你在學習 winform的
07/15 17:58, 2F

07/15 17:59, , 3F
邪惡,那你可以配合MouseClick 事件與
07/15 17:59, 3F

07/15 18:00, , 4F
TextBox.SelectAll(),判斷部份用 int.TryParse
07/15 18:00, 4F

07/15 18:01, , 5F
除非真的沒辨法,try catch 不要用來做常規防呆
07/15 18:01, 5F

07/15 18:03, , 6F
有Validating事件可以用...
07/15 18:03, 6F
感謝前輩建議! 因為書本上介紹到東西實在有限 但是查也不知道用哪個keyword才好 ※ 編輯: skitty (114.136.57.193), 07/15/2016 18:06:17

07/15 18:54, , 7F
int.TryParse 可以避免轉型發生 exception
07/15 18:54, 7F
文章代碼(AID): #1NYB1jNG (C_Sharp)
文章代碼(AID): #1NYB1jNG (C_Sharp)