|
Das DropDown-Ereignis einer CombBox informiert Sie darüber, dass
eine ComboBox geöffnet worden ist (siehe auch "Klappe
auf - Klappe zu"). Das Gegenstück dazu, das Sie
über das Schließen der ComboBox informiert, gibt es allerdings
nicht. Sie können die Information jedoch über einen kleinen Umweg
erhalten.
Platzieren Sie zusätzlich eine PictureBox auf dem Form direkt
unterhalb der ComboBox und setzen Sie ihre Eigenschaften Enabled und
Visible gleich False. Im DropDown-Ereignis der ComboBox lassen Sie
die PictureBox sichtbar werden. Der Anwender sollte dies gar nicht
mitbekommen, da ja die ausgeklappte Liste der ComboBox die
PictureBox verdeckt. Sicherheitshalber können Sie auch noch die
PictureBox-Eigenschaft BorderStyle gleich 0 und die
Hintergrundfarbe auf die des Forms setzen. Beim Schließen der
ComboBox wird nun das Paint-Ereignis der PictureBox ausgelöst - und
Sie bekommen somit die Information über das Schließen der
PictureBox. In diesem Paint-Ereignis setzen Sie außerdem die
Visible-Eigenschaft der PictureBox wieder auf False zurück.
Private Sub Combo1_DropDown()
Picture1.Visible = True
End Sub
Private Sub Picture1_Paint()
Picture1.Visible = False
Debug.Print "Close ComboBox"
End Sub
Haben Sie mehrere ComboBoxen auf dem Form platziert, brauchen Sie
nicht für eine jede eine eigene PictureBox, sondern nur eine
einzige für alle. Diese PictureBox verschieben Sie im
DropDown-Ereignis jeder ComboBox direkt unter diese, ehe Sie
sichtbar wird. Zur Unterscheidung, welche ComboBox geschlossen
wurde, setzen Sie eine Kennung in die Tag-Eigenschaft der PictureBox,
etwa den Namen der betreffenden ComboBox.
Private Sub Combo1_DropDown()
Picture1.Tag = "Combo1"
Picture1.Move Combo1.Left, Combo1.Top + Combo1.Height
Picture1.Visible = True
End Sub
Private Sub Picture1_Paint()
Picture1.Visible = False
Debug.Print "Close ComboBox " & Picture1.Tag
End Sub
|