none
大家是否發覺.Net的Control的Dock使用上存在很大問題 RRS feed

  • 一般討論

  • 例如, 有一Panel, 在其內要加3個Panel, 分別為A, B, C,
    當加入A和B後, 並把A, B的Dock設為top, 若在空白地方再加入C,

    1)  把C的Dock設為Fill時, 雖然這3個是同一層級的Panel, 但C卻會佔了大Panel的
        全部位置, 而且頭被A, B覆蓋, 而不是A, B, C並列

    2) 把C的Dock設為Top時, 有時C會在最上, 無論怎樣再設定A和B為Top, 也不能
       Top於C, 結果永遠的順序為C, A, B(由上以下), 而不能是開發者所希望的A, B, C
       (曾估計.Net可能根據Control的名來排序, 故A, B, C設回順序的名, 如PanelA, PanelB, PanelC, 但也是徒然)

     

    2010年9月26日 下午 10:14

所有回覆

  • 你可以用文件大綱視窗調整各Panel的順序, 就可以觀察出其順序對Dock的影響. 事實上我用了很久, 是沒有問題的

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

    這是先後順序的問題,一層蓋過一層,先置放於容器控制項(例如Panel,tableControl)的控制項控,會在最下,反之則在最下層。

    這跟畫圖有點像,你可以對控制項按右鍵,提到最上層提到最下層 ,來更改其層次屬性,觀察結果弄到你要的結果為止

     

    2010年10月7日 上午 05:08
  • dear

    這是先後順序的問題,一層蓋過一層,先置放於容器控制項(例如Panel,tableControl)的控制項控,會在最下,反之則在最下層。

    這跟畫圖有點像,你可以對控制項按右鍵,提到最上層提到最下層 ,來更改其層次屬性,觀察結果弄到你要的結果為止

     

    多謝指示, 但我所說的不是層級(Front/Back)的問題, 而是同一層級內, 於某Container內的元件排列, 即Top, bottom等問題, 最簡單地說, 假設於某Container內增加元件A, 把其Dock設為Top, 再增加元件B, 亦把其Dock設為Top, 大家會認為 A或B 才是位於該Container內最Top的位置?
    2010年10月8日 上午 05:43
  • 你先加入A, A設DockStyle Top 則A會先置於頂端, 然後加入B , 一樣是DockSytle Top, 此時B可以Dock的範圍要扣除 A已Dock的位置, 所以就會在B的下方.

    這樣會有問題嘛 ?


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年10月8日 上午 06:00
    版主
  • 你先加入A, A設DockStyle Top 則A會先置於頂端, 然後加入B , 一樣是DockSytle Top, 此時B可以Dock的範圍要扣除 A已Dock的位置, 所以就會在B的下方.

    這樣會有問題嘛 ?

     您意思是說先加入A, 再加入B, B會在A後嗎? 但我曾試過B永遠排在A之上,
     但亦有出現A永遠排在B之上, 我仍未知道Visual Studio以什麼規則運行
     
     我曾試過兩個方案: (假設現在先加入A, 再加入B, B永遠會在A之上, 但我想要的情況是相反)
     1) 把A和B先抽出, 再以相反的順序: 先放入B, 再於入A,
        但結果卻又出現 B在A之上
     2) 把B的名命名在A之前, 例如B.Name = "aaa", A.Name = "bbb"
        但結果卻又出現 B在A之上, 以此例, 可以確定當2個元件同為Top時,
        Visual Studio不是以命名為排列順序規則,

     但究竟Visual Studio用什麼規則排列呢?
    2010年10月8日 上午 08:07
  • 我是真的完全沒遇過我預料之外的狀況, 建議你在這狀況下應該開啟 "文件大綱" 來看 ,你在文件大綱中看到的順序就是正確的順序了, 對規則的拿捏會比較準確.

    因為我的程式中一向都要Dock一大堆東西, 真的沒遇過你講的困擾.

    PS: 不同的DockStyle設定會有不同的表現這倒是會.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年10月8日 上午 08:17
    版主
  • 2010年10月8日 上午 08:54
  • dear
    1.沒有控制項能在同一層級(順序),控制項的優先顯示是有分層級(順序),就算你是在同一個容器也是有,如果沒有層級之分?那請問哪個控制項要在最前面呢?
    2.TOP指的是控制項在這個容器的位置,每一個控制項都有權利在TOP這個位置,這時就看誰的層級最高,它就能佔到位置。
    3.若是變更Dock屬性,層級(順序)會改變,所以你變來變去變不出個所以然。
    4.請問你有照我的方式或是其他人的方式試試看嗎?
    2010年10月8日 下午 07:06