Sch*_*uli 17 .net validation combobox winforms
在WinForms 2.0中,ComboBox具有自动完成功能,该功能显示自定义下拉列表,其中仅包含以输入文本开头的值.
但是,如果我想将有效值限制为仅显示在ComboBox项目列表中的值,我可以通过设置DropDownStyleto DropDownList来阻止用户输入值.
但是,现在我无法使用需要用户输入的自动完成功能.
是否有其他方法可以限制输入到列表,同时仍然允许使用自动完成功能?请注意,我已经看到了一些针对此的自定义解决方案,但我真的很喜欢匹配的自动完成项目在下拉列表中显示的方式,并且即使原始列表可能不是这样排序的.
编辑:我已经考虑过验证输入的值,即测试用户输入是否在TextChanged事件中有效,甚至是使用Validating事件.那么问题是预期的行为是什么?我是否清除它们的值(空值也无效),还是使用默认值?最接近的匹配值?
Ps我可以在这个问题上添加任何其他标签吗?
这个解决方案对我有用:
Private Sub myComboBox_Validating(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles myComboBox.Validating
If Not myComboBox.Items.Contains(myComboBox.Text) Then
MsgBox("Please select a value from the list", MsgBoxStyle.Exclamation, "Value not available")
e.Cancel = True
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25477 次 |
| 最近记录: |