C 控制項Dock優先順序

2021-07-27 09:32:10 字數 984 閱讀 8993

最近被.net winform中的控制項布局搞困惑了,由於控制項都是使用dock方式的,操作起來也是比較方便,如果最大化,視窗大小調整等,都可以隨著視窗大小的變化而變化。

但問題是,.net winform的dock方式是根據先新增的控制項順序進行優先順序dock排列的,假設我想目前有三個控制項a、b、c分別以 top、bottom以及fill方式填充視窗即視窗看起來應該是這樣的:

---------------------

a---------------------

c---------------------

b----------------------

問題來了,現在我想新增d控制項在a及c中間怎麼辦?嘗試了不少辦法都不行,一般都會覆蓋掉c控制項的,也就是最後新增的控制項。

在網上查詢,很多人都提出一種無奈的解決方案,那就是重新來過,將控制項再次新增到視窗form中,雖然可以解決dock布局帶來的困擾,但帶來的是工作量的倍增同時很難調整到跟之前的布局一模一樣 。

想來這都不是解決的辦法,新增新增,我一直想,對了先新增的控制項具有dock的優先排序權,應該可以從designer檔案中著手啊。

找到以下**:

this.controls.add(

this.d); 

this.controls.add(this.c);

this.controls.add(this.b);

this.controls.add(this.a);

將**的順序調整為:

this.controls.add(

this.c); 

this.controls.add(

this.d);

this.controls.add(

this.b);

this.controls.add(

this.a);

問題即解決了。

由此可見,在desinger檔案中是以後新增的控制項為優先權高來dock排序,即a控制項的排序優先權最高。

Masnory 多個控制項與優先順序

1.參考文章 masonry介紹與使用實踐 快速上手autolayout ios自適應前段庫 masonry的使用 我是閱讀完成這兩篇才開始寫masnory的約束的。2.當uilabel左右之間相互適應的時候。因為不用設定uilabel左邊和右邊的寬度,即左邊的label不用設定靠右距離,右邊的la...

C語言弄搞優先順序 優先順序問題

c語言易弄錯優先順序 1.的優先順序高於 操作符用於消除這類問題 p.f誤認 p所指物件的字段f。p f 實際結果 對p取f偏移,作為指標,然後作為解除引用操作。p.f 2.優先順序高於 int ap誤認 ap是個指向int陣列的指標。int ap 實際結果 ap是個元素為int的指標陣列。int ...

C 運算優先順序

precedence operator description example associativity1 grouping operator array access member access from a pointer member access from an object scopin...