无法取消选择我的DevExpress LookUpEdit

时间:2010-10-28 18:03:29

标签: vb.net devexpress

我有一个DevExpress LookUpEdit,我在VB.Net中使用Visual Studio 2008。

我将LookUpEdit绑定到我的数据源,它显示的值可能为null或数据源中的一行。我的程序显示一个树形图,当选择一个节点时,LookUpEdit应该显示指定的值(可以为null)并让用户重新分配该值。 我确实将LookUpEdit.Properties.AllowNullInput设置为True。现在当程序首次启动时,如果我选择的树形图中的第一个节点具有空值,则LookUpEdit不显示任何内容,如果我更改了值LookUpEdit中的值在数据库中发生更改,如果我更改为具有LookUpEdit值的节点,则显示该值。

问题是,如果我从具有值的节点切换到没有LookUpEdit的节点,则显示先前的值。我已经通过调试器,它仍然正在进行正确的获取。

我试图重置LookUpEdit.Text,LookUpEdit.EditValue和LookUpEdit.SelectedText,但没有任何效果。我甚至复制了LookUpEdit首次显示的条件(LookUpEdit.Text =“”和LookUpEdit.EditValue =“”),但它仍然显示最后一个值。

我用 lueLocation.EditValue = lueLocation.Properties.GetKeyValueByDisplayText(valueName)

设置实际值

修改

所以我把它缩小了。在我将Text和EditValue设置为空

之后
lueLocation.Text = Nothing
lueLocation.EditValue = Nothing

设置值。问题是,在设置值的操作中,下拉菜单打开。所以我用lueLocation.ClosePopup()来结束它。出于某种原因,当它被调用时,会将.Text.EditValue更改回以前的值,从而调用TextChanged Event

不知道为什么但是我无法打开下拉菜单。

2 个答案:

答案 0 :(得分:3)

通常在UI中,Ctrl-Del的组合键应清除它并将其设置为空。否则,在代码中,您应该能够设置EditValue = Nothing,并且应该这样做。

以下是DX网站上的几个链接:

搜索:http://search.devexpress.com/?q=clear+lookupedit&p=T4%7cP1%7c4&d=447

http://www.devexpress.com/Support/Center/p/Q96464.aspx http://www.devexpress.com/Support/Center/p/Q270901.aspx

答案 1 :(得分:1)

我解决了这个问题。正如您在编辑中看到的那样lueLocation.ClosePopup()实际上导致它恢复为之前的.Text.EditValue值。我删除了lueLocation.ClosePopup(),然后导致我的界面如果值为null则下拉列表保持打开状态,如果有实际的指定值则关闭。

我发现如果我将.EditValue设置为DBNull.ValuelueLocation.EditValue = DBNull.Value)而不是Nothing""" "分配给LookUpEdit的值为空,并自动关闭下拉菜单。