俺用Picture內放置TextBox與Command及窗體內放置ListView的方法實現ComboBox加強控件
當點擊Command按鈕時用MoveWindow、ShowWindow、Call SetParent(ByVal ListView.hwnd, ByVal GetDesktopWindow)等API函數使ListView控件顯現出來
現在的問題是:
1.當鼠標點擊ListView及自定義控件以外的任何地方時能讓ListView隱藏
2.在點擊Command時判斷ListView是否已顯示,如顯示則隱藏,如隱藏則顯示
如果能獲得自定義控件容器的Mouse事件那就容易了

解决方案 »

  1.   

    不是給控件加事件
    而是要在控件中捕捉到控件當前容器(比如Form)所發生的事件
    舉例說:
     我想在控件中捕捉到此控件的容器是否有點擊鼠標(不是點控件,是點窗體)
      

  2.   

    沒人頂啊再一問:
    在UserControl工程中添加一Form在UserControl添加一按鈕及事件
    Private Sub Command1_Click()
       Form1.Show
    End Sub在Form1中
    Private Sub Form_Deactivate()
       Debug.Print Now
    End Sub在另一工程中引用此控件
    當控件工程的窗體失去焦點時為何不響應Form_Deactivate事件呢
      

  3.   

    沒人頂啊再一問:
    在UserControl工程中添加一Form在UserControl添加一按鈕及事件
    Private Sub Command1_Click()
       Form1.Show
    End Sub在Form1中
    Private Sub Form_Deactivate()
       Debug.Print Now
    End Sub在另一工程中引用此控件
    當控件工程的窗體失去焦點時為何不響應Form_Deactivate事件呢
      

  4.   

    Activate 和 Deactivate 事件仅当焦点在一个应用程序内移动时才发生。再在UserControl添加一按鈕及事件
    Private Sub Command2_Click()
       Form2.Show
    End Sub
      

  5.   

    我的目的是想做一個類似ComboBox的下拉框控件
    在控件中點一下按鈕就跳出列表框,就像ComboBox一樣
    然後現在遇到的困難是:當鼠標點擊列表框及控件內的文本框以外的區域時就隱藏列表框哎,用了一個星期眼看就要完工的了,怎知到碰到了這樣的一個大麻煩
      

  6.   

    引用:
    ====================================================================
    不是給控件加事件
    而是要在控件中捕捉到控件當前容器(比如Form)所發生的事件
    舉例說:
     我想在控件中捕捉到此控件的容器是否有點擊鼠標(不是點控件,是點窗體)
    ====================================================================
    点击按钮 则显示LISTBOX 
    点击窗体其他地方 则隐藏LISTBOX  ??
    那跟LISTBOX没什么关系的啊 
    Command1_Click()里面写代码 让ListBox显示 
    Form1_Click()里面写代码 让ListBox隐藏不就好了?
      

  7.   

    一句代码搞定 
    ListBox1.Visible = Not ListBox1.Visible
      

  8.   

    To:DSophia(dsophia)
       要是有你說的這麼簡單那就好了
       
    Form1_Click()里面写代码 让ListBox隐藏不就好了?
    ==============================================
    要知此Form非彼Form