2014-10-20 74 views
0

我正在研究.Net緊湊框架。 根據要求我們有下拉和文本框; 當用戶從下拉菜單中選擇值時,選定的索引更改事件觸發,並在文本框中更新值。 現在假設用戶在文本框中輸入了值,那麼我們需要再次設置下拉選擇索引。Recurssion + .Net Compact框架

所以有了這個上面的場景它去了遞歸。

請幫我解決這個問題。

回答

1

兩個簡單的解決方案,來我的腦海:

一)一個標誌
使用一個簡單的變量_preventRecursion指示哪些更新應該發生,例如像這樣:

private volatile bool _preventRecursion; 

public void TextBox_TextChanged(...) 
{ 
    if (!_preventRecursion) 
    { 
     _preventRecursion = true; 
     try 
     { 
      // Do stuff to update the combo box. 
     } 
     finally 
     { 
      _preventRecursion = false; 
     } 
    } 
} 

添加與組合框的事件處理程序相同的代碼。

B)手動附加的事件處理程序
如果您手動附加事件處理程序的代碼,你可以當事件可控制:

public void TextBox_TextChanged(...) 
{ 
    comboBox1.SelectedIndexChanged -= selectedIndexChangedEventHandler; 
    try 
    { 
     // Do stuff to update the combo box 
    } 
    finally 
    { 
     comboBox1.SelectedIndexChanged += selectedIndexChangedEventHandler; 
    } 
} 

selectedIndexChangedEventHandler將是一個適當的委託。