刚学写控件,我想要的效果是:
在开发环境下画控件的大小是自定义控件内部的一个textbox的大小,(自定义控件内部包含多个系统控件)
然后运行的时候,可以再来设置这个自定义控件的大小。
用了 Resize 后,运行时不能再设置自定义控件的大小了。
高手赐教。

解决方案 »

  1.   

    增加一个 TextBox 大小的接口.如:在制作自定义控件的时候.增加以下属性:TxtWidthTxtHeight让 txtWidth txtHeight 属生分别与 textbox 的宽,高相接,并可以赋值.
      

  2.   

    Private Sub UserControl_Resize()
        If Not Ambient.UserMode Then
            UserControl.Width = Text1.Width
            UserControl.Height = Text1.Height
        End If
    End Sub
      

  3.   


    你在设计控件时,在以下事件中设置
    '示例, Text1的大小,随着,你在画控件时个的大小而改变.
    Private Sub UserControl_Resize()
      Text1.Left = 0
      Text1.Top = 0
      Text1.Width = UserControl.Width
      Text1.Height = UserControl.Height
    End Sub
      

  4.   


    在开发环境下画控件的大小是自定义控件内部的一个textbox的大小,(自定义控件内部包含多个系统控件) 
    然后运行的时候,可以再来设置这个自定义控件的大小。 
    用了 Resize 后,运行时不能再设置自定义控件的大小了。 
    高手赐教。
      

  5.   


    Ambient 创建控件时不可用
      

  6.   

    不能响应ReSize那就要用Timer了
      

  7.   

    运行无误。肯定是你其他的代码触发了 Resize 事件。
      

  8.   

    我要的效果就是:
    因为我的自定义控件包含多个系统控件,我想在开发环境下画的自定义控件的大小只有一个textbox的大小,不要再去设置。
    然后运行的时候,当触发了某个事件的时候,可以调整自定义控件的大小。
      

  9.   

    我3楼的代码已经实现了你的要求,不信你新建控件试试。
    你要仔细检查代码,要么是控件未初始化时做了 Resize,要么你认为应该在运行时的 Resize 实际在设计模式下就执行了。
    在 UserControl_Resize 中加断点,打开 Call Stack 检查。