添加了AutoSizeFormClass类,对主窗体的AutoSizeChange事件进行响应从而达到控件自适应窗体大小的功能 . 实现方法:
-
创建结构体comStatus,记录一个控件当前规格大小和在窗体的相对位置;
-
创建列表compList,记录当前窗体的所有控件的comStatus;
-
主窗体大小发生变化时,调用ControlAutoSize方法. 先读取列表内记录的主窗口之前的状态信息,与其当前信息比对,获取窗口大小变化的比例系数;
float wideScale = (float)mainForm.Width / (float)compList[0].Width; float highScale = (float)mainForm.Height / (float)compList[0].Height;
-
调用autoResize方法,对窗口内的所有控件根据上一步获得的比例系数和列表内记录的上一次状态信息进行大小和位置的调整.
subCtrl.Left = (int)((Left0) * wideScale); subCtrl.Top = (int)((Top0) * highScale); subCtrl.Width = (int)(Width0 * wideScale); subCtrl.Height = (int)(Height0 * highScale);
使用独立的类控制控件的自使用功能
控件自适应部分120 + 行
控件自适应部分:3h 学习线程相关问题:> 24h
- 完成了实验的基本要求:控件自适应窗体大小;
- 学习了线程相关的知识,但由于了解还是不足,未能在本次实验中加以应用;
- 之后会继续学习线程控制的相关知识,弥补自身的知识漏洞.