管理两个组合框,其中只有一个必须具有值

时间:2012-04-23 21:59:18

标签: c# combobox

我的DevExpress LookUp控件中有这个简单的代码(应该与普通的组合框相同)

private void lookUpUsers_EditValueChanged(object sender, EventArgs e)
{
    lookUpRolesPréÉdit.EditValue = null;
}

private void lookUpRolesPréÉdit_EditValueChanged(object sender, EventArgs e)
{
    lookUpUsers.EditValue = null;
}

问题在于,当我在lookUpUsers中选择一个值时,会重置其他查找,然后重置lookUpUsers。因此,当我选择一个值时,两个组合框都变为空。我想要的是当你在组合框1中选择一个值时,组合框2重置它的值。

3 个答案:

答案 0 :(得分:1)

可能有一种比这更简单的方法,因为我对C#的了解有限(特别是像你这样的库在这里使用它们)。然而,这是一个没有使用图书馆提供的魔力的答案:

private bool localEdit = false;

private void lookUpUsers_EditValueChanged(object sender, EventArgs e)
{
    if (!localEdit)
     {
        localEdit = true;
        lookUpRolesPréÉdit.EditValue = null;
        localEdit = false;
    }
}

private void lookUpRolesPréÉdit_EditValueChanged(object sender, EventArgs e)
{
    if (!localEdit)
    {
        localEdit = true;
        lookUpUsers.EditValue = null;
        localEdit = false;
    }
}

答案 1 :(得分:1)

这个怎么样:

private void lookUpUsers_EditValueChanged(object sender, EventArgs e)
{
    if(lookUpUsers.EditValue != null)
        lookUpRolesPréÉdit.EditValue = null;
}

private void lookUpRolesPréÉdit_EditValueChanged(object sender, EventArgs e)
{
    if(lookUpRolesPréÉdit.EditValue != null)
        lookUpUsers.EditValue = null;
}

答案 2 :(得分:0)

这是我提出的解决方案

private void lookUpUsers_EditValueChanged(object sender, EventArgs e)
{
    if (!isEditFinished)
    {
        isEditFinished = true;
        lookUpRolesPréÉdit.EditValue = null;
    }

    isEditFinished = false;
}

private void lookUpRolesPréÉdit_EditValueChanged(object sender, EventArgs e)
{
    if (!isEditFinished)
    {
        isEditFinished = true;
        lookUpUsers.EditValue = null;
    }

    isEditFinished = false;
}