2012年11月13日 星期二

[除錯] 建立視窗控制代碼時發生錯誤 (下)

建立視窗控制代碼時發生錯誤 (上)

網路上這樣的發問訊息不多...
在(中文)資訊很少 也無解決方法...
有談論到的中文網站
 點我點我(1)
 點我點我(2) <<---- 有解決方法 但不是我要的!

(英文)資訊較多 卻苦無解決方法(讀者可以試試找英文的文件)...
[KeyWords]
Creating Window Handle
System.outOfMemoryException
System.NullReferenceException
MdiParent
FormWindowState.Maximized

有遇到相同原因的 或許可以試試
若剛好同樣的原因 那恭喜你 可以解決了

解決辦法

(1)

        p_mdi.MdiParent = Me
        p_mdi.WindowState = FormWindowState.Maximized
        p_mdi.Show()

改成
        p_mdi.Owner = Me
        p_mdi.WindowState = FormWindowState.Maximized
        p_mdi.Show()

這樣就不是MDI表單了~
但問題解決了~

(2)

p_mdi.WindowState = FormWindowState.Maximized

註解掉~ 並且不讓子表單在放大狀態運作~
這樣在畫面上會很怪 也很不符合使用邏輯~
但問題也解決了~

實際上可解決辦法

(1)
(Coding狀態) 將 [UI畫面] 拉大至可以將 [TextBox1] 容納~

(2)
將 btn[版面設置] 移至 [TextBox1] 後面~ 此時(Coding狀態) [TextBox1] 便落在 [UI畫面] 上~

(3)
將 [TextBox1] 位置 調置前面 使落在 [UI畫面] 上~

(4)
不管你用什麼辦法~ 
(刪除前面某個btn or others 讓 [TextBox1] 落在 [UI畫面] 上)
(刪除 [TextBox1])
, etc...

只要讓 [TextBox1] 在(Coding狀態) [UI畫面上] 便解決問題!
若是在程式執行時~ 才拉大UI畫面 一樣會出錯!


真正原因在於...............................................(研究中)

一、
我將專案每個表單內的程式全清空~ 僅保留空的程式!

EX: (表單 Class 原始)
Public Class MGMT_Personal
       'do something
End Class

UI設計畫面保留~
程式依然出錯~ 所以確定不是 Code 的問題!

二、
建立新的專案 測試MDI 也將 [TextBox1] (Codeing狀態)移出 [UI畫面] 外~
執行不會出錯 所以是原本專案上 拉UI時 未知的地方出錯~



----不無可能是程式碼某部份寫錯 for loop 之類的東西----

沒有留言:

張貼留言