第一步:新建結構體,用於儲存窗體屬性
第二步:新建集合用於儲存對應控制項結構的屬性
第三步:將控制項的屬性新增到集合中
第四步:計算出放大和縮小的比例
第五步:輸出實際的控制項大小
參考:
using system;
using system.collections.generic;
using system.diagnostics;
using system.drawing;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows.forms;
namespace _2dmotionplatform.formautosizi
//收集控制項的屬性到集合中
public
void
addcontroltolist
(control control)}}
// 窗體自適應解析度
public
void
controlautosize
(control mainform)
//求取解析度的縮放比例
float widthscale =
(float
)mainform.width /
(float
)origenalcontrol[0]
.width;
float hightscale =
(float
)mainform.height /
(float
)origenalcontrol[0]
.height;
ctrno =1;
;//第0個為窗體本身,窗體內的控制項,從序號1開始
autoscalecontrol
(mainform, widthscale, hightscale)
;//窗體內其餘控制項還可能巢狀控制項(比如panel),要單獨抽出,因為要遞迴呼叫
}private
void
autoscalecontrol
(control mform,
float wscale,
float hscale)
debug.
write
("如果物件是通過get()方法獲取的,而不是new出來的,就可以通過在迴圈中改變物件的屬性的方式來改變集合中該物件的屬性值。");
}}}
實現窗體的自適應解析度,只需要在窗體的layout事件中新增如下**:
formautosize formautosize =
newformautosize()
;private
void
form1_layout
(object sender,
layouteventargs e)
Winform窗體控制項自適應大小
自己寫的winform窗體自適應大小 比較獨立,很適合貼來貼去不會對原有程式造成影響,可以直接繼承此類或者把 複製到自己的 裡面直接使用 借鑑了網上的一些資料,最後採用重寫wndproc方法,這樣可以兼顧窗體拖拽調整窗體大小和最大化 最小化方法,而且 比較簡練,侵入性較小 using system ...
winform窗體自適應
實現步驟 1.在窗體中放乙個容器 例如 panel 並且將容器的dock屬性設定為fill。窗體中其他控制項都放在這個容器中。2.建立乙個窗體類,該類繼承於原始窗體類,並在新建的這個窗體類中新增如下 以後建立的窗體都繼承於新建的這個窗體類 region 控制項縮放 double formwidth ...
Qt 實現窗體控制項自適應
開啟.ui檔案 最外面grid layout grid layout裡面放hlayout 放兩個textedit和乙個vlayout發在hlayout中 在vlayout中放兩個vspace和乙個pushbutton 效果如下 將兩個textedit物件到sizepolicy屬性到水平和垂直測率設定...