预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1.新建用户控件,取名MyForm。 2.将默认的UserControl改成Form 3.在类中添加以下代码 privatefloatX,Y; //获得控件的长度、宽度、位置、字体大小的数据 privatevoidsetTag(Controlcons)//Control类,定义控件的基类 { foreach(Controlconincons.Controls) { con.Tag=con.Width+":"+con.Height+":"+con.Left+":"+con.Top+":"+con.Font.Size;//获取或设置包含有关控件的数据的对象 if(con.Controls.Count>0) setTag(con);//递归算法 } } privatevoidsetControls(floatnewx,floatnewy,Controlcons)//实现控件以及字体的缩放 { foreach(Controlconincons.Controls) { string[]mytag=con.Tag.ToString().Split(newchar[]{':'}); floata=Convert.ToSingle(mytag[0])*newx; con.Width=(int)a; a=Convert.ToSingle(mytag[1])*newy; con.Height=(int)(a); a=Convert.ToSingle(mytag[2])*newx; con.Left=(int)(a); a=Convert.ToSingle(mytag[3])*newy; con.Top=(int)(a); SinglecurrentSize=Convert.ToSingle(mytag[4])*newy; con.Font=newFont(con.Font.Name,currentSize,con.Font.Style,con.Font.Unit); if(con.Controls.Count>0) { setControls(newx,newy,con);//递归 } } } privatevoidMyForm_Resize(objectsender,EventArgse) { floatnewx=(this.Width)/X;//当前宽度与变化前宽度之比 floatnewy=this.Height/Y;//当前高度与变化前宽度之比 setControls(newx,newy,this); this.Text=this.Width.ToString()+""+this.Height.ToString();//窗体标题显示长度和宽度 } protectedoverridevoidOnLoad(EventArgse) { base.OnLoad(e); this.Resize+=newEventHandler(MyForm_Resize); X=this.Width; Y=this.Height; setTag(this); } 4.新建windows窗口,继承自定义控件 5.随便添加一个控件到Form1上,测试。