【问题标题】:Recurssion + .Net Compact framework递归 + .Net Compact 框架
【发布时间】:2014-10-20 20:51:18
【问题描述】:

我正在开发 .Net 紧凑型框架。 根据要求,我们有下拉和文本框; 当用户从下拉列表中选择值时,选择的索引更改事件会触发并且值在文本框中更新。 现在假设用户在文本框中输入了值,那么我们需要再次设置下拉选择索引。

所以在上面的场景中它进入了递归。

请帮我解决这个问题。

【问题讨论】:

    标签: .net


    【解决方案1】:

    我想到了两个简单的解决方案:

    a) 旗帜
    使用一个简单的变量_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 是合适的代表。

    【讨论】:

      猜你喜欢
      • 2012-09-06
      • 2010-11-01
      • 2012-09-13
      • 1970-01-01
      • 2013-09-07
      • 2011-04-30
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多