2012-04-23 53 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

相關問題