俺用Picture內放置TextBox與Command及窗體內放置ListView的方法實現ComboBox加強控件
當點擊Command按鈕時用MoveWindow、ShowWindow、Call SetParent(ByVal ListView.hwnd, ByVal GetDesktopWindow)等API函數使ListView控件顯現出來
現在的問題是:
1.當鼠標點擊ListView及自定義控件以外的任何地方時能讓ListView隱藏
2.在點擊Command時判斷ListView是否已顯示,如顯示則隱藏,如隱藏則顯示
如果能獲得自定義控件容器的Mouse事件那就容易了
當點擊Command按鈕時用MoveWindow、ShowWindow、Call SetParent(ByVal ListView.hwnd, ByVal GetDesktopWindow)等API函數使ListView控件顯現出來
現在的問題是:
1.當鼠標點擊ListView及自定義控件以外的任何地方時能讓ListView隱藏
2.在點擊Command時判斷ListView是否已顯示,如顯示則隱藏,如隱藏則顯示
如果能獲得自定義控件容器的Mouse事件那就容易了
而是要在控件中捕捉到控件當前容器(比如Form)所發生的事件
舉例說:
我想在控件中捕捉到此控件的容器是否有點擊鼠標(不是點控件,是點窗體)
在UserControl工程中添加一Form在UserControl添加一按鈕及事件
Private Sub Command1_Click()
Form1.Show
End Sub在Form1中
Private Sub Form_Deactivate()
Debug.Print Now
End Sub在另一工程中引用此控件
當控件工程的窗體失去焦點時為何不響應Form_Deactivate事件呢
在UserControl工程中添加一Form在UserControl添加一按鈕及事件
Private Sub Command1_Click()
Form1.Show
End Sub在Form1中
Private Sub Form_Deactivate()
Debug.Print Now
End Sub在另一工程中引用此控件
當控件工程的窗體失去焦點時為何不響應Form_Deactivate事件呢
Private Sub Command2_Click()
Form2.Show
End Sub
在控件中點一下按鈕就跳出列表框,就像ComboBox一樣
然後現在遇到的困難是:當鼠標點擊列表框及控件內的文本框以外的區域時就隱藏列表框哎,用了一個星期眼看就要完工的了,怎知到碰到了這樣的一個大麻煩
====================================================================
不是給控件加事件
而是要在控件中捕捉到控件當前容器(比如Form)所發生的事件
舉例說:
我想在控件中捕捉到此控件的容器是否有點擊鼠標(不是點控件,是點窗體)
====================================================================
点击按钮 则显示LISTBOX
点击窗体其他地方 则隐藏LISTBOX ??
那跟LISTBOX没什么关系的啊
Command1_Click()里面写代码 让ListBox显示
Form1_Click()里面写代码 让ListBox隐藏不就好了?
ListBox1.Visible = Not ListBox1.Visible
要是有你說的這麼簡單那就好了
Form1_Click()里面写代码 让ListBox隐藏不就好了?
==============================================
要知此Form非彼Form