2012-04-23 52 views
1

我在我的DevExpress查找控制这种简单的代码(应该是与通常的组合框相同)管理两个组合框,其中只有一个必须有一个值

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会重置其值。

+0

那么,是什么你说的是“只能有一个”? – RQDQ 2012-04-23 23:32:29

回答

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; 
} 
+0

工程,它很干净! – Mathieu 2012-04-24 00:21:45

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; 
    } 
} 
+0

这就像一个魅力! – Mathieu 2012-04-24 00:20:19

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; 
} 
+0

您对我的解决方案无法正常工作是正确的,但那是因为我没有100%地理解代码的意图时发生了一个愚蠢的错误。你可以告诉我,我会在几秒钟内解决:P – Jasper 2012-04-23 23:30:41

相关问题