【发布时间】:2021-02-26 22:36:15
【问题描述】:
我在 VB.NET、Visual Studio 2017 中工作。我有一个带有 DropdownStyle = Dropdown 的组合框。如果用户在组合框的文本字段中输入了无效的内容(无效意味着它与组合框中的值不匹配),那么我们会显示一条消息,然后将焦点返回到文本字段并突出显示文本,这样他们就可以看到什么他们打字。该消息从 Validating 事件中显示。
如果他们不打开下拉菜单,这可以正常工作。如果他们确实打开了下拉列表,并且在打开时输入了无效条目,则会显示消息,但他们输入的条目会被清除。
我已经放入调试语句以查看正在触发的事件。在消息显示之前,我得到一个 DropDownClosed(文本仍然存在),然后是 TextChanged(文本仍然存在),然后是第二个 TextChanged(文本现在是空的)。我认为失去焦点以显示消息的某些事情可能会触发某些事情,但我无法弄清楚是什么。
我可以保存文本,然后在消息显示后替换它,但是当消息出现时,文本字段是空白的。
有什么想法吗?
【问题讨论】:
-
我们不应该要求您发布相关代码。如果看不到您的代码,我们就无法测试您的代码。
-
您能否至少向我们展示一下验证事件。猜猜你在哪里取消它,这意味着数据不再有效,因此被清除
-
我将在下面发布代码。因为虽然我已经部分解决了这个问题,但仍然存在问题。