Никак, когда функция возвращает пустую строку, это значит либо то, что пользователь ввел пустую строку, либо то, что пользователь нажал отмену.
Напиши свой InputBox, если лень, могу свою реализацию подкинуть.
Форма максимально автономна, использование:
- Код: Выделить всё
If frmInputBox.InputText(ReturnText, FormCaption, InputBoxStyle, InputTitle, MaxTextLength, ListItems) Then
...
End If
P.S. Вспомогательные функции:
- Код: Выделить всё
Declare Function SendMessage ...
Const WM_USER As Long = &H400&
Enum WindowMessageConstants
cbFindString = &H14C&
cbGetItemHeight = &H154&
cbLimitText = &H141&
emLimitText = &HC5&
lbFindString = &H18F&
End Enum
Function FindByValue(ListControl As Control, Optional ByVal Value As String) As Long
Dim I As Long, msg As Long
If TypeOf ListControl Is ComboBox Then
msg = WindowMessageConstants.cbFindString
If Len(Value) = 0 Then Value = ListControl.Text
ElseIf TypeOf ListControl Is ListBox Then
msg = WindowMessageConstants.lbFindString
Else
Exit Function
End If
I = SendMessage(ListControl.hWnd, msg, -1&, ByVal Value)
FindByValue = I + 1
End Function
Lasciate ogni speranza, voi ch'entrate.