C winform 窗體縮放自適應

2022-03-05 14:09:09 字數 2090 閱讀 8618

1.  首先在窗體上放上乙個panel容器,並將容器的dock屬性設為fill,即所有的控制項都放在了這個容器裡。

using

system;

using

system.collections.generic;

using

system.drawing;

using

system.text;

using

system.windows.forms;

namespace

//////

/// ///

panel 控制項

public

void

initcontrolsinfo(control ctrlcontainer)

foreach (control item in

ctrlcontainer.controls)

if ((item as usercontrol) == null && item.controls.count > 0

) }}

public

void

formsizechanged()

}private

void

controlszoomscale(control ctrlcontainer)

//////

改變控制項大小

/// ///

private

void

controlschange(control ctrlcontainer)

string strs = controlsinfo[item.name].split('

,');//

從字典中查出的資料,以『,』分割成字串組

for (int i = 0; i < 5; i++)

double itemwidth = pos[2] * scalex; //

計算控制項寬度,double型別

double itemheight = pos[3] * scaley; //

計算控制項高度

item.left = convert.toint32(pos[0] * scalex - itemwidth / 2);//

計算控制項距離左邊距離

item.top = convert.toint32(pos[1] * scaley - itemheight / 2);//

計算控制項距離頂部距離

item.width = convert.toint32(itemwidth);//

控制項寬度,int型別

item.height = convert.toint32(itemheight);//

控制項高度

item.font = new font(item.font.name, float.parse((pos[4] * math.min(scalex, scaley)).tostring()));//字型}}}

}}

使用:

using

system;

using

system.collections.generic;

using

system.componentmodel;

using

system.data;

using

system.drawing;

using

system.linq;

using

system.text;

using

system.threading.tasks;

using

system.windows.forms;

namespace

private

void form1_load(object

sender, eventargs e)

#region 窗體縮放

private

void form1_sizechanged(object

sender, eventargs e)

}#endregion

}}

C 窗體控制項自適應縮放

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...

C WinForm窗體及其控制項的自適應

c winform窗體及其控制項自適應各種螢幕解析度 一。說明 我們自己編寫程式的介面,會遇到各種螢幕解析度,只有自適應才能顯的美觀。實際上,做到這點也很簡單,就是首先記錄窗體和它上面控制項的初始位置和大小,當窗體改變比例時,其控制項的位置和大小也按此比例變化即可。因為窗體上控制項的位置和大小是相對...

C winform窗體及其控制項的自適應

為了提公升使用者的體驗,窗體不能再固定其大小 使用者不能隨意改變窗體的大小 所以要做到窗體適應電腦螢幕的解析度,窗體中的控制項要跟隨窗體的變化比例而變化。通過網上查詢學習,發現有幾個位大佬的方法不錯,所以把他們的 加到自己的工程中測試了一下,發下儘管能實現比例變化的功能,但是還是有時候會有控制項錯位...