我用vb做了个标题栏控件有下面几个问题?
1.我想该控件一施到窗体后有些属性自己初始化。
  比如我想初始时
         usercontrol.top=15
         usercontrol.left=15
    于是我在usercontrol_resize事件写下了下面代码:
     usercontrol.top=15
         usercontrol.left=15
         但此时usercontrol没有left.top属性。怎样做?我不想把代码写在调用窗体form_load事件
想写在控件代码里(写在form_load事件里肯定可以).
     
2.我的标题栏有最小化、最大化、关闭按纽。可最小化、最大化、关闭按纽的代码想写在控件里试了很久还是不行,我没办法只得提供三个接口把代码写在调用窗体的form_load事件里。
可就非得每个窗体都要写,很麻烦,写控件就是为了减少代码,要维护。大家有没有没有好的办法?

解决方案 »

  1.   

    1:在显示Show消息加入:    
    UserControl.Extender.Left = 15
    UserControl.Extender.Top  = 15
    就可以固定你的控件位置
    2:如果逆想最大化你的窗口必须在控件中使用API函数
    比如说最大化,这样操作:先定义Windows APi
    Private Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long
    Private Const SW_MAXIMIZE = 3 '最大化
    Private Const SW_MINIMIZE = 6 '最小化让后在最大化按钮加入 call ShowWindow(UserControl.ContainerHwnd,MAXIMIZE )就好了最小化
     call ShowWindow(UserControl.ContainerHwnd,SW_MINIMIZE)关闭 call DestroyWindow(UserControl.ContainerHwnd)
     只是理论上的,没经过调试
      

  2.   

    有个地方写错了MAXIMIZE 换 SW_MAXIMIZE