Re: [問題] Text方法會丟出未知的例外?

看板C_Sharp作者 (XDXDXDXDXDXD)時間15年前 (2009/05/20 08:07), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串2/4 (看更多)
考古文 就是把code 交給原本的UI的Thread去執行就可以了 private void ChangeText() { if ( this.InvokeRequired ) { this.Invoke(new MethodInvoker(this.ChangeText)); } else { //這裡是你下面的Code } } ※ 引述《testUI (測試者)》之銘言: : //Latitude緯度轉換 : Double dLat = Convert.ToDouble(lineArr[2]); : dLat = dLat / 100; : string[] lat = dLat.ToString().Split('.'); : Latitude = lineArr[3].ToString() + lat[0].ToString() + "." + ((Convert.ToDouble(lat[1]) / 60)).ToString("#####"); : //Longitude經度轉換 : Double dLon = Convert.ToDouble(lineArr[4]); : dLon = dLon / 100; : string[] lon = dLon.ToString().Split('.'); : Longitude = lineArr[5].ToString() + lon[0].ToString() + "." + ((Convert.ToDouble(lon[1]) / 60)).ToString("#####"); : //Display顯示出來 : txtLat.Text = Latitude;//這兩行會丟出例外 : txtLong.Text = Longitude;// : private void txtLat_TextChanged_1(object sender, EventArgs e) : { : } : private void txtLong_TextChanged_1(object sender, EventArgs e) : { : } : 以上是我的程式碼片段, : 大概就是作把GPS訊號抓出來算出經緯度, : 再把他們顯示在兩個TEXTBOX上這樣 : 但每次我跑的時候,他都會跟我說TEXT這個方法拋出例外,是未定義的例外 : 我看書上也沒有要特別宣告這個方法 用同樣的方式使用居然會跳出錯誤 蠻怪的 : 我是在WM6手機模擬器上跑的 開發環境是M$ studio 2008 : windows mobile SDK 6 .NET Framework 3.5 : 以下是他顯示出來的詳細例外訊息 : System.NotSupportedException 未處理 : Message="Control.Invoke must be used to interact with controls created on a separate thread." : StackTrace: : at Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar) : at System.Windows.Forms.Control.get_Text() : at System.Windows.Forms.Control.set_Text(String value) : at SmartDeviceProject4.Form1.SetText(String text) : at SmartDeviceProject4.Form1.serialPort1_DataReceived(Object sender, SerialDataReceivedEventArgs e) : at System.IO.Ports.SerialPort.CatchReceivedEvents(Object src, SerialDataReceivedEventArgs e) : at System.IO.Ports.SerialStream.EventLoopRunner.CallReceiveEvents(Object state) : at System.Threading.ThreadPool.WorkItem.doWork(Object o) : at System.Threading.Timer.ring() ((Convert.ToDou : 先謝謝各位回答了@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.158.65

05/20 16:52, , 1F
我照你說的做,他跟我說MethodInvoker未宣告@@
05/20 16:52, 1F

05/20 20:37, , 2F
將 MethodInvoker 改成 Action
05/20 20:37, 2F

05/20 21:04, , 3F
這樣就可以了,但是Text有比較直接的使用方法嗎?不然每次要
05/20 21:04, 3F

05/20 21:05, , 4F
用都要這樣感覺很麻煩@@
05/20 21:05, 4F
文章代碼(AID): #1A4qd5jA (C_Sharp)
文章代碼(AID): #1A4qd5jA (C_Sharp)