写了一个用户控件,但是获得的显示范围总是设计界面的范围,不是拖放到窗体里的尺寸?

时间:2022-09-08 20:14:07
比如,我在设计界面中,建立了一个用户控件,大小是200x100像素。
然后,我把这个用户控件拖放到FORM里做开发。在form上设置的大小是500x500。

这时候,我在用户控件界面里写了一个画对角线的语句,但是我发现,在用户控件的构造函数里,获得的size是200x100,而不是我想要的500x500,如何获得用户控件在form上的尺寸呢?难道要传进去么?

6 个解决方案

#1


用户控件设置 长 框的属性值,实例化的时候赋值 把自动停靠false

#2


引用 1 楼 lzp3438034 的回复:
用户控件设置 长 框的属性值,实例化的时候赋值 把自动停靠false


这样不好吧。放在form上,还要随着窗体自动改变大小。

#3


把你的方法放在窗体的Load事件中

#4


执行画线,不要放到构造函数里,而应该放到OnPaint里
否则刚创建出来,还没有给它赋值高和宽,你就开始画线,那不是用默认值么

#5


引用
把你的方法放在窗体的Load事件中

assky124,你好!没有理解按你说的那样就能实现“还要随着窗体自动改变大小”嘛?
什么原因啊

#6


类的构造函数
是在调用它的地方new的时候就执行的
而要给类里的全局变量赋值,则必须先实例化,再给实例化后的变量赋值
所以构造函数是在new之后,赋值之前,就先执行了

要么你重载一个构造函数,让窗体在new控件的时候就直接先传一组数据进来
要么把画线的代码写在别处

#1


用户控件设置 长 框的属性值,实例化的时候赋值 把自动停靠false

#2


引用 1 楼 lzp3438034 的回复:
用户控件设置 长 框的属性值,实例化的时候赋值 把自动停靠false


这样不好吧。放在form上,还要随着窗体自动改变大小。

#3


把你的方法放在窗体的Load事件中

#4


执行画线,不要放到构造函数里,而应该放到OnPaint里
否则刚创建出来,还没有给它赋值高和宽,你就开始画线,那不是用默认值么

#5


引用
把你的方法放在窗体的Load事件中

assky124,你好!没有理解按你说的那样就能实现“还要随着窗体自动改变大小”嘛?
什么原因啊

#6


类的构造函数
是在调用它的地方new的时候就执行的
而要给类里的全局变量赋值,则必须先实例化,再给实例化后的变量赋值
所以构造函数是在new之后,赋值之前,就先执行了

要么你重载一个构造函数,让窗体在new控件的时候就直接先传一组数据进来
要么把画线的代码写在别处