最近被.net winform中的控制項布局搞困惑了,由於控制項都是使用dock方式的,操作起來也是比較方便,如果最大化,視窗大小調整等,都可以隨著視窗大小的變化而變化。
但問題是,.net winform的dock方式是根據先新增的控制項順序進行優先順序dock排列的,假設我想目前有三個控制項a、b、c分別以 top、bottom以及fill方式填充視窗即視窗看起來應該是這樣的:ac
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控制項的排序優先權最高。
C WinForm控制項之Dock先後順序調整
最近被.net winform中的控制項布局搞困惑了,由於控制項都是使用dock方式的,操作起來也是比較方便,如果最大化,視窗大小調整等,都可以隨著視窗大小的變化而變化。但問題是,net winform的dock方式是根據先新增的控制項順序進行優先順序dock排列的,假設我想目前有三個控制項a b ...
C WinForm控制項之Dock先後順序調整
postfxj 最近被.net winform中的控制項布局搞困惑了,由於控制項都是使用dock方式的,操作起來也是比較方便,如果最大化,視窗大小調整等,都可以隨著視窗大小的變化而變化。但問題是,net winform的dock方式是根據先新增的控制項順序進行優先順序dock排列的,假設我想目前有三...
C Winform控制項動態刪除
wpf控制項的動態刪除請參考wpf動態刪除指定型別控制項 今天在實現控制項動態刪除過程中遇到了點小trouble,就是在刪除的過程中只能刪除一半,具體 如下 foreach var control in from ctls in controlutility.getcontrols panel1 w...