1. 首先在窗體上放上乙個panel容器,並將容器的dock屬性設為fill,即所有的控制項都放在了這個容器裡。
usingsystem;
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()));//字型}}}
}}
使用:
usingsystem;
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窗體及其控制項的自適應
為了提公升使用者的體驗,窗體不能再固定其大小 使用者不能隨意改變窗體的大小 所以要做到窗體適應電腦螢幕的解析度,窗體中的控制項要跟隨窗體的變化比例而變化。通過網上查詢學習,發現有幾個位大佬的方法不錯,所以把他們的 加到自己的工程中測試了一下,發下儘管能實現比例變化的功能,但是還是有時候會有控制項錯位...