最近被.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...