none
變動UI的設計時 當程式碼呼叫InitializeComponent 發生奇怪的問題 RRS feed

  • 問題

  • 各位好 小弟今天寫程式時碰到一個奇怪的問題  

    就是我現在的Form有Tabcontrol 這個元件

    我今天想新增一個新的頁面上去

    新增完後 編譯完卻發生如下圖所示的問題

    甚至是我要移除之前有一個新增的一個Toolstrip的控件 移除完之後也發生同樣的問題

    代碼運行到InitializeComponent 時 跳出這個錯誤訊息窗口  請問這是什麼問題? 要怎麼解決??

    2014年11月6日 上午 01:59

解答

  • 是不是有設定哪個控制項的某個欄位,原本是數字的你把它設成文字了?

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2014年11月6日 上午 03:47
    版主
  • 就 SpeedShiftTxt.Text 字串無法轉為 Double,加上 Val 後再試試看

    Me.TextBox17.Text = Me.NumericUpDown19.Value * 8000 * Val(Me.SpeedShiftTxt.Text)


    歡迎參觀我的Blog【菜鳥自救會】

    2014年11月6日 上午 06:19
    版主

所有回覆

  • 您目前提供的資訊不太夠,是否有嘗試進入 InitializeComponent 查看,或是偵錯時透過堆疊去查看?


    歡迎參觀我的Blog【菜鳥自救會】

    2014年11月6日 上午 02:08
    版主
  • 小歐大大您好

    這是我把Try拿掉後

    跟進去的代碼

    請看下圖

    2014年11月6日 上午 03:20
  • 是不是有設定哪個控制項的某個欄位,原本是數字的你把它設成文字了?

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2014年11月6日 上午 03:47
    版主
  • 把 Form1.Designer.vb 檔案貼上來,我覺得問題出在這裡.

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年11月6日 上午 04:43
    版主
  •  Private Sub NumericUpDown19_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown19.ValueChanged
    
            Me.TextBox17.Text = Me.NumericUpDown19.Value * 8000 * (Me.SpeedShiftTxt.Text)
    
        End Sub
    我抓到有問題的代碼了

    是NumericUpDown19

    這個控件下所觸發的事件

    的程式碼造成的 

    不過不是很理解為什麼會

    這樣

    當我把

    Me.TextBox17.Text = Me.NumericUpDown19.Value * 8000 * (Me.SpeedShiftTxt.Text)
    


    close掉就不會了 真奇怪
    2014年11月6日 上午 06:01
  • 就 SpeedShiftTxt.Text 字串無法轉為 Double,加上 Val 後再試試看

    Me.TextBox17.Text = Me.NumericUpDown19.Value * 8000 * Val(Me.SpeedShiftTxt.Text)


    歡迎參觀我的Blog【菜鳥自救會】

    2014年11月6日 上午 06:19
    版主
  • 如果是在 Desigener / Load / 自動產生控制項 下,有可能 SpeedShiftTxt 物件根本還沒生成。

    這行上方可加入:

    Dim ctlPtr As IntPtr = Me.SpeedShiftTxt.Handle

    確保物件先完成初始化,再執行你這行指令。


    T.L. Cheng

    2014年11月22日 上午 02:24
    版主