隨著窗體大小變化改變控制項的大小和字型

2021-10-23 12:06:33 字數 1723 閱讀 6859

public  struct formsizechange

float mfn = (float)form.size.height / formsizechange.currentsize.height;//放大率

width = convert.toint32(((float)form.size.width / formsizechange.currentsize.width) * formsizechange.sizes[i].width);

height = convert.toint32(((float)form.size.height / formsizechange.currentsize.height) * formsizechange.sizes[i].height);

c.size = new size(width, height);

c.left = convert.toint32(((float)form.size.width / formsizechange.currentsize.width) * formsizechange.cleft[i]);

c.top = convert.toint32(((float)form.size.height / formsizechange.currentsize.height) * formsizechange.ctop[i]);

c.font = new font(c.font.fontfamily, formsizechange.fonts[i].size * mfn);

c.name.tostring();

i++;}}

///

/// 得到控制項個數

/// 初始化結構體並賦值給

///

/// 結構體

/// 窗體

public static void getfromsize(ref formsizechange formsizechange, form form)

}///

/// 獲取控制項的屬性值放入formsizechange的乙個結構體中

///

///

///

public static void getformsizechange(ref formsizechange formsizechange, controlcollection controls)

//if (c.haschildren)

formsizechange.sizes[i] = c.size;

formsizechange.cleft[i] = c.left;

formsizechange.ctop[i] = c.top;

formsizechange.fonts[i] = c.font;

i++;}}

///

/// 獲取窗體控制項的數量

///

///

///

public static int getcontrolcount(controlcollection controls)

i++;

}return i;

}private void login_load(object sender, eventargs e)

未解決問題:

1、可以用遞迴方式遍歷所有控制項;我試過如panel 或者groupbox等控制項或出現一些問題,會出現位置偏移

2、如果用datagridview控制項,也會出現控制項無法使用

希望各位大俠給出好的解決方法;

如何讓窗體大小隨著控制項的大小變化而變化

2014 01 20 14 25 form的autosize true,formborderstyle fixedsingle tablelayoutpanel及其裡面的容器的dock fill,autosize true label中的文字比較貼著窗體邊緣時可以通過padding屬性來調整 因定寬...

控制項隨著視窗大小變化

好多人問這個問題,我也是剛學會,三步解決mfc視窗變動後控制項的大小 一 在標頭檔案中定義 point old 存放對話方塊的寬和高。oninitdialog 中計錄寬和高。crect rect getclientrect rect 取客戶區大小 old.x rect.right rect.left...

控制項隨著視窗大小變化

好多人問這個問題,我也是剛學會,三步解決mfc視窗變動後控制項的大小 一 在標頭檔案中定義 point old 存放對話方塊的寬和高。oninitdialog 中計錄寬和高。crect rect getclientrect rect 取客戶區大小 old.x rect.right rect.left...