![]() |
How to disable the "ESC feature" of a ComboBox?
I've a UserForm with a ComboBox with e.g. 10 items.
Private Sub UserForm_Initialize() Dim Counter As Long For Counter = 1 To 10 ComboBox1.AddItem "MyItem " & Counter Next ComboBox1.ListIndex = 5 End Sub Choose another item in the ComboBox. Now, if you press 'Esc' the before selected item gets selected (and there is also no KeyPress event if you press 'Esc' the first time). How can I disable this feature? I don't want that 'Esc' selects the before selected item. I like e.g. 'Esc' to close the UserForm. |
How to disable the "ESC feature" of a ComboBox?
Hi Stefan,
This should help, although it still won't work if Escape is pressed whilst the Combobox list is still dropped down. If you Choose a list item first, or are using the cursors to navigate up and down the list then this should prevent the list resetting to the last item. Try using this code in your form: 'These are variables for the form in general Dim cboVal As Long Dim boolEsc As Boolean Option Explicit Private Sub ComboBox1_Change() If boolEsc = True Then boolEsc = False ComboBox1.ListIndex = cboVal Else cboVal = ComboBox1.ListIndex boolEsc = False End If End Sub Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 27 Then boolEsc = True End If End Sub Private Sub UserForm_Initialize() Dim Counter As Long boolEsc = False For Counter = 1 To 10 ComboBox1.AddItem "MyItem " & Counter Next ComboBox1.ListIndex = 5 End Sub Sean. "Stefan Mueller" wrote: I've a UserForm with a ComboBox with e.g. 10 items. Private Sub UserForm_Initialize() Dim Counter As Long For Counter = 1 To 10 ComboBox1.AddItem "MyItem " & Counter Next ComboBox1.ListIndex = 5 End Sub Choose another item in the ComboBox. Now, if you press 'Esc' the before selected item gets selected (and there is also no KeyPress event if you press 'Esc' the first time). How can I disable this feature? I don't want that 'Esc' selects the before selected item. I like e.g. 'Esc' to close the UserForm. |
All times are GMT +1. The time now is 02:57 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com