限制组合框列出值和过时的列表值

时间:2014-12-05 19:48:55

标签: vb.net validation combobox

我正在创建一个程序,为了简单起见,记录接收电话的工作人员的姓名。该程序旨在显示旧条目以及创建新条目。

问题是我希望用户在创建新条目时只能从下拉框中选择列出的名称。但此列表仅显示当前员工。然而,当查看较旧的呼叫时,此组合框字段还需要显示接听此列表中可能不再存在的呼叫的前雇员。

据我所知,Microsoft控件和属性只有2个选项与此事有关。 DropDownStyle DropDown DropDownList

使用 DropDown 时,用户可以提交任何名称(不需要)。 使用 DropDownList ,用户只能在列表中提交名称,但在浏览旧条目时,该列表中不再出现的任何名称都不会出现在各自的呼叫中(这也是不需要的)。 / p>

我知道我最终可能不得不实现我自己的组合框类,但我想看看是否有人知道更优雅的修复结合这两种功能。谢谢!

2 个答案:

答案 0 :(得分:0)

在我看来,你有两种模式。添加模式添加新的呼叫记录,而查看模式显示旧记录。

使用下拉列表将用户限制为您加载的内容。在“添加”模式下,仅使用当前员工加载控件。当表单处于查看模式时,请加载所有员工。

答案 1 :(得分:-1)

使用DropDown。在验证事件中,设置e.Cancel = True并指示ErrorProvider控件使用SetError方法发出警告SelectedItem Is Nothing,但要清除错误(通过{{1}而不是Nothing)。然后,在组合框的SetError事件中,调用表单的SelectionChangeCommitted方法。