zoukankan      html  css  js  c++  java
  • 设定了自定义属性,来控制控件的宽度或高度,但数据会不正常

    虽然设定了某一个数值,但老是自动变为另一个数值
    ,如,宽度设置为100,但运行或重新打开窗体设计界面,宽度自动变为133,如多打开几次,甚至会越变越大,寻找很久,也找不到原因,在多次尝试后,才发现原因
    之前为省事,在设置自定义属性时,使用如下格式:
    1. <Category("MAX Member")> _
    2. Public Property mShowControlLength As Integer
    3. Get
    4. Return xShow.Width
    5. End Get
    6. Set(value As Integer)
    7. xShow.Width = value
    8. End Set
    9. End Property
    从理论上来说,没有任何问题,但是就是会造成这个值不能固定,甚至越变越大,后来改成如下格式,终于固定:

    1. <Category("MAX Member")> _
    2. Public Property mShowWidth As Integer
    3. Get
    4. Return _showWidth        ‘使用自定义的变量来输出设定值
    5. End Get
    6. Set(value As Integer)
    7. _showWidth = value
    8. xShow.Width = _showWidth
    9. If (Me.DesignMode) Then
    10. xItemPanel.Refresh()
    11. End If
    12. End Set
    13. End Property
    ​原因分析,由于控件中的控件本身并不存储设定值,那么在获取宽度时,是程序根据当时情况计算得到的,计算时的宽度是无法预计的,所以会显示为随机变大的值,然后,再根据此值保存为设置值。就发生了这种情况,吸取这次教训,不要再犯

  • 相关阅读:
    麦卡姆轮运动原理
    ESP32开发(2)esp32-cam采集图像
    ESP32开发(1)环境配置
    Cesium学习笔记2-3:视频投影
    Cesium中实时显示经纬度及视角高
    Cesium学习笔记2-5:内部使用阳历扩展
    Cesium学习笔记2-4:外部扩展
    Cesium学习笔记2-4:更多官方示例
    win10通过wifi分享上网
    更换源地址
  • 原文地址:https://www.cnblogs.com/wene/p/4225110.html
Copyright © 2011-2022 走看看