看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《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