none
MDI表單事件問題 RRS feed

  • 問題

  • 建立Form的事件 MouseEnter  .  MouseEnter  .  Click

    可以正常的觸發

    但若是將Form的  IsMdiContainer=true 後

    這些事件都無法觸發......

    請前輩指點一下...

    2016年8月21日 上午 02:51

解答

  • MDI Form 在 Window Message 是一路轉傳,Windows 對 MDI Form 送出,再轉傳到子視窗,再送到物件。

    你如果母視窗不正確有可能轉不進來。

    最簡單的是掛 Visual Studio 內建工具 Spy++ 檢查 Window Message 傳遞。

    另外,微軟有提,建議新版的 Windows Form 不要再寫 MDI Form ,僅供參考。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 Lin_even 2016年9月20日 上午 09:56
    2016年8月21日 下午 05:06
  • 就建議大家使用新的使用者介面, 例如TabControl, 效果也更好, 控制上也較簡單
    • 已標示為解答 Lin_even 2016年9月20日 上午 09:56
    2016年8月22日 上午 04:14

所有回覆

  • MDI Form 在 Window Message 是一路轉傳,Windows 對 MDI Form 送出,再轉傳到子視窗,再送到物件。

    你如果母視窗不正確有可能轉不進來。

    最簡單的是掛 Visual Studio 內建工具 Spy++ 檢查 Window Message 傳遞。

    另外,微軟有提,建議新版的 Windows Form 不要再寫 MDI Form ,僅供參考。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 Lin_even 2016年9月20日 上午 09:56
    2016年8月21日 下午 05:06
  • 微軟有提,建議新版的 Windows Form 不要再寫 MDI Form ? 為何啊? 

    請問在哪提? 我想了解一下。

    謝謝。

    2016年8月22日 上午 12:44
  • 我只有建立一個Form

    在還沒將Form改為MDI模式時,事件觸發都是正常的

    但更改之後這些事件就無回應了

    所以沒有子視窗耶

    是不是MDI表單類似將控制項 Enable=false 

    2016年8月22日 上午 01:30
  • 就建議大家使用新的使用者介面, 例如TabControl, 效果也更好, 控制上也較簡單
    • 已標示為解答 Lin_even 2016年9月20日 上午 09:56
    2016年8月22日 上午 04:14
  • 自己找吧,不要出張嘴要別人幫你辛苦地找。

    印象中應該是 Win8 起,不支援 MDI Form 樣式,所以從 Win8 以後,MDI Form 的視窗跟純 SDI Form 不同。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2016年8月22日 下午 05:15
  • 哦! 原來是這樣,感謝。
    2016年8月23日 上午 12:39