※ 引述《Privator (普萊斐特)》之銘言:
: 標題: [.NET] 請較一個關於TreeView的問題..
: 時間: Sun Mar 29 11:51:46 2009
:
: 我不知道這算是問題還是VB.NET 原本就有的bug,在微軟網站上好像有看過
: 有人反應過一樣的問題, 不過沒人回應..
: 我使用的軟體版本是VS.NET 2005,使用VB.NET開發Windows 應用程式..
: 我在Form上拉個一個TreeView, 設了一些節點, 想依使用者點選不同的節點
: 打開其他不同的Form, 因此在Treeview_AfterSelected()加了form.show()
: 的程式碼, 現在問題來了, 在使用者點選節點以後, 新的form會打開, 但是
: 卻是顯示在原來的form的後面, 我試過另外拉一個button, 在button_click
: 寫一樣的程式不會有這樣的問題, form會很正常的顯示在原form的前面..
: 目前試過的解決方式如下:
: 1.將程式碼從TreeView_AfterSelect搬到Treeview_NodeMouseClick,結果沒
: 用..
: 2.將form.show 改成form.showdiag,會顯示在前面沒錯, 可是我不希望用
: showdialog(), 這樣它會變成對話框, 不關掉就不能使用原form..
: 3.在form.show 以後加上原form.SendToBack 或是新form.BringToFront,結
: 果沒用..
: 4.設定新form的TopMost,會顯示在前面, 可是這個form會變成永遠在上方..
:
: 請問各位知不知道是為什麼? 有沒有辦法避免這樣的問題??
: --
: 推 mraaa:你的Form.Show()要用有Owner引數的那個把Me填進去就可以了 03/31 15:05
: → Privator:試過以後是OK的..謝謝.. 04/01 19:06
抱歉我又回來了.. ^^;
一開始試的時候以為是OK的, 但是後來發現, 開出來的form其實就是原form
的child form, 它的behavior其實和ShowDialog()差不多.. :((
我要的是用第一個form打開第二個form, 但是兩者並無關聯性, 可以在第二
個form打些資料以後又回到第一個form..
其實我覺得這和TreeView的行為模式有關, 它可能在AfterSelect 以後又做
了什麼事把focus 又轉回原form, 用button_click做Form.show 並不會有這
樣的問題..
如果有人有其他的解法的話請提供, 感激不進.. ^^;
--
“我打算每天清晨起床,整天呼吸,過陣子我就不必提醒
自己起床呼吸;再過一陣子,我就不會想起過去的甜蜜。”
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.137.140.143