C#自定义控件实现控件随窗口大小改变
更新时间:2024-04-15 00:33:01 阅读量:3 综合文库 文档下载
1.新建用户控件,取名MyForm。
2.将默认的UserControl改成Form
3.在类中添加以下代码
private float X, Y;
//获得控件的长度、宽度、位置、字体大小的数据
private void setTag(Control cons)//Control类,定义控件的基类 {
foreach (Control con in cons.Controls) {
con.Tag = con.Width + \ + con.Height + \ + con.Left + \ + con.Top + \ + con.Font.Size;//获取或设置包含有关控件的数据的对象
if (con.Controls.Count > 0) setTag(con);//递归算法 } }
private void setControls(float newx, float newy, Control cons)//实现控件以及字体的缩放 {
foreach (Control con in cons.Controls) {
string[] mytag = con.Tag.ToString().Split(new char[] { ':' }); float a = 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);
Single currentSize = Convert.ToSingle(mytag[4]) * newy;
con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
if (con.Controls.Count > 0) {
setControls(newx, newy, con);//递归 } } }
private void MyForm_Resize(object sender, EventArgs e) {
float newx = (this.Width) / X;//当前宽度与变化前宽度之比 float newy = this.Height / Y;//当前高度与变化前宽度之比 setControls(newx, newy, this);
this.Text = this.Width.ToString() + \ \ + this.Height.ToString(); //窗体标题显示长度和宽度
}
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
this.Resize += new EventHandler(MyForm_Resize); X = this.Width; Y = this.Height; setTag(this); }
4.新建windows窗口,继承自定义控件
5.随便添加一个控件到Form1上,测试。






正在阅读:
C#自定义控件实现控件随窗口大小改变04-15
《检测与转换技术》实验指导书11-03
发酵及设备设计说明书05-19
【创新方案】2015届高考数学(新课标版,文)二轮复习专题训练:专题7 第1讲 几何证明选讲(选修4-1)]05-14
山东远程研修观课报告01-25
简单员工转正申请书09-29
连续刚构桥施工监控方案06-30
63学时模拟电路教案06-21
2012现代制造技术技能比赛方案04-21
- 高一物理牛顿运动定律全套学习学案
- 水处理一级反渗透加还原剂亚硫酸氢钠后为什么ORP会升高
- 毕业设计(论文)-正文董家口 - 图文
- 荣盛酒店经营管理公司录用通知及入职承诺书II
- 第二讲 大学英语四级快速阅读技巧
- 质量管理体系文件(2015年委托第三方医药物流配送企业专用版本)
- 214071收款办法
- 苏轼对《文选》选文的评价
- 《诊断学基础B》1-8作业
- 广东省东莞市高一数学下学期期末教学质量检查试题
- 海南电网公司VIS推广应用管理办法
- 红星照耀中国习题
- 苏教版小学语文六年级上册期末复习资料之生字词整理
- 局域网组建与应用—王向东
- 税务稽查内部管理文书样式
- 环保社会实践调查表
- 九年级思品第一单元复习
- 2016年全国注册咨询工程师继续教育公路路线设计规范试卷
- 毕业设计-青岛港董家口港区防波堤设计
- 撞背锻炼方法与益处
- 控件
- C#
- 定义
- 大小
- 窗口
- 改变
- 实现
- sqlcode sqlstate 说明
- 中国生态文明建设的现状和未来发展展望1
- 江苏省将军名录
- 新课标-精编教案最新人教版2018-2019学年数学三年级上册《分数的
- 工会换届五年工作总结以及今后五年工作--传
- 公路养护方案
- 医院感染管理处置流程图
- 学习贯彻党的十九大精神知识竞赛参考题库
- 一般将来时练习一 - 选择题
- 物流防损管理手册 - 图文
- 粒子群优化算法介绍及matlab程序
- 浙江东方职业技术学院自主招生面试试题综合素质答案技巧
- 领导行为与领导艺术 第5讲:领导艺术(上)
- 2013文综试卷4
- 人教版2018-2019学年小学三年级数学上册期中测试题
- 例建筑:徐磊毕业设计-说明书
- 关于印发《安全预评价导则》的通知
- 社区建设工作交流材料
- 《项目管理》期末复习答案
- 热力学与统计物理重点