1.控件必须放在一个panel中(可能其他也行,没试。。。);
2.from类中添加一个函数,并添加form的sizechanged事件,如下:
事件如下:
3.在构造函数中调用AutoResize函数,如下:
2.from类中添加一个函数,并添加form的sizechanged事件,如下:
-
C# code
-
public void AutoResize(Form frm) { frm.Tag = frm.Width.ToString() + " , " + frm.Height.ToString(); frm.SizeChanged += new EventHandler(Form1_SizeChanged); }
事件如下:
-
C# code
-
private void Form1_SizeChanged( object sender, EventArgs e) { string [] tmp = ((Form)sender).Tag.ToString().Split( ' , ' ); float width = ( float )((Form)sender).Width / ( float )Convert.ToInt16(tmp[ 0 ]); float heigth = ( float )((Form)sender).Height / ( float )Convert.ToInt16(tmp[ 1 ]); ((Form)sender).Tag = ((Form)sender).Width.ToString() + " , " + ((Form)sender).Height; foreach (Control control in ((Form)sender).Controls) { control.Scale( new SizeF(width, heigth)); } }
3.在构造函数中调用AutoResize函数,如下:
-
C# code
-
public Form1() { InitializeComponent(); AutoResize(this);//函数调用 }
原文转至xuezhe521的http://topic.csdn.net/u/20120829/10/5309914f-8bc9-428a-9825-c9dcd8577a26.html