在ReSize事件中处理控件的坐标

解决方案 »

  1.   

    我用了20个label控件,如何同时改动他们的大小,不用写重复的代码
      

  2.   

    利用Me.Controls对象来遍历每一个控件,其中,
       Me.Controls.Count   控件总数
       Me.Controls(i)      第i个控件处理概要如下。1.定义Form级变量和数组,用于保存Form及所有控件的初始尺寸;
    2.在Form_Load事件中,
      (1)保存Form的初始宽度和高度;
      (2)保存每个控件的左上角坐标、宽度、高度;
    3.在Form_ReSize事件中,重新计算各个控件的尺寸。
      (1) X方向比例 = Form的当前宽度 / Form的初始宽度
      (2) Y方向比例 = Form的当前高度 / Form的初始高度
      (3) 控件的新宽度 = 控件的初始宽度 * X方向比例
      (4) 控件的新高度 = 控件的初始高度 * Y方向比例
      (5) 控件的左上角X坐标 = 控件的左上角初始X坐标 * X方向比例
      (6) 控件的左上角Y坐标 = 控件的左上角初始Y坐标 * Y方向比例注意:对于Grid控件,各列的宽度也需要按类似方法,重新计算。 
      

  3.   

    利用Me.Controls对象来遍历每一个控件,其中,
       Me.Controls.Count   控件总数
       Me.Controls(i)      第i个控件处理概要如下。在Form_Load事件中,
      1.计算比例:
        (1)定义设计时屏幕的分辨率,即屏幕的设计宽度和高度;
        (2)取得当前屏幕的分辨率,  即屏幕的当前宽度和高度;
        (3) X方向比例 = 屏幕的当前宽度 / 屏幕的设计宽度
        (4) Y方向比例 = 屏幕的当前高度 / 屏幕的设计高度
      2.计算Form及各个控件的尺寸:
        (1) Form的新宽度 = Form的初始宽度 * X方向比例
        (2) Form的新高度 = Form的初始高度 * X方向比例
        (3) 控件的新宽度 = 控件的初始宽度 * X方向比例
        (4) 控件的新高度 = 控件的初始高度 * Y方向比例
        (5) 控件的左上角X坐标 = 控件的左上角初始X坐标 * X方向比例
        (6) 控件的左上角Y坐标 = 控件的左上角初始Y坐标 * Y方向比例注意:对于Grid控件,各列的宽度也需要按类似方法,重新计算。