看板 C_and_CPP 關於我們 聯絡資訊
大家好:) 我是用visual c++ 想用一個textbox輸入數值後 將數值取出 再繪圖 程式碼大概是這樣 #pragma endregion private: System::Void panel1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { Pen^ myPen=gcnew Pen(Color::Black,0.1f); int x = Convert::ToInt32(TextBox->Text); //這行是要將textbox的內容轉成數字 Point startPt=Point(x,200); Point endPt=Point(100,200); e->Graphics->DrawLine(myPen,startPt,endPt); } private: System::Void ProcessNum_TextChanged(System::Object^ sender, System::EventArgs^ e) { } 但是這樣的話 我必須要textbox就預設初始值 若未設,則會錯誤 而無法讓使用者輸入之後再取出其值 請問該怎麼修改呢? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.121.206 nonebelieve:轉錄至看板 ask 12/03 17:40
gozha:try{x=Convert::ToInt32(TextBox->Text);}catch(...){x=0;} 12/03 17:43
gozha:是這樣嗎..XD 12/03 17:43
感謝你:) 但由於我是新手 第一次使用VC++ 可以麻煩你講清楚一點嗎><
stupid0319:isFirstRun = false? 12/03 17:45
抱歉.. 我不懂你的意思 囧"
gozha:可以想成 無法convert時產生exception,此時會跳進catch 12/03 18:10
MSDN寫的try catch 有點複雜 總之就是例外處理就對了 那catch後面應該要是什麼呢..?
gozha:沒有要特別處理的話,就catch(...)三個點應該就可以了.. 12/03 18:20
看起來是失敗了 囧" int x; try{x=Convert::ToInt32(TextBox->Text);}catch(...){;} 補圖:http://ppt.cc/t(a7 或 int x; try{x=Convert::ToInt32(TextBox.Text);}catch(...){;} 補圖:http://ppt.cc/~Fsb 都錯
loveme00835:出現啥咪錯誤? 12/03 18:29
如果是我原文的方法的話 圖:http://ppt.cc/jdkG
loveme00835:TextBox 是類別名稱... 12/03 18:38
對吼XDD 我忘記我改過了 笨了 改好之後 還是和我輸入的值沒有關係阿 囧" 還沒輸入他就會自動畫圖了 x 自動被設為0
gozha:如果跳到catch的話記得要給x初始值喔~ 12/03 18:47
但是我的目的是要他去取輸入的值耶 跳到catch的話就... 所以應該不能用例外處理
gozha:不然就是把畫圖的處理也包進try裡面 12/03 18:50
gozha:try{int x ... e->Graphics ...}catch(...){} 類似這樣 12/03 18:51
然後他就不會畫圖了XDD 看起來應該要找別的方法.. ※ 編輯: nonebelieve 來自: 61.227.121.206 (12/03 18:52)