有三个窗口:主窗口,查询窗口,查询集合窗口
主窗口点击查询弹出查询条件窗口,然后键入查询条件,按查询,查询窗口消失,
并将查询结果赋值给第三个窗口(查询集合窗口)
选取第三个查询记录中的记录来填充第一个窗口,同时关闭第三个窗口。
请问这类问题如何处理。

解决方案 »

  1.   

    e.g.一些事件参数:
    public class QueryConditionChangedEventArgs : EventArgs
    {
      private string _someCondition;
      
      public QueryConditionChangedEventArgs(string condition)
      {
         _someCondition = condition;
      }  public string Condition
      {
        get{return _someCondition;}
      }
    }public class QueryCollectionSelectedEventArgs : EventArgs
    {
      private string _seletedCondition;
     
      public QueryCollectionSelectedEventArgs(string selected)
      {
         _selectedCondition = selected;
      }  public string SelectedCondition
      {
        get{return _selectedCondition;}
      }
    }一些事件委托:public delegate void QueryConditionChangedEventHandler(object sender, QueryConditionChangedEventArgs e);public delegate void QueryCollectionSelectedEventHandler(object sender, QueryCollectionSelectedEventArgs e);
    然后, QueryForm Closing中:public event QueryConditionChangedEventHandler OnQueryConditionChanged;
    private string _yourCondition;private void QueryForm_FormClosing(object sender, EventArgs e)
    {
      if(OnQueryCondtionChanged != null)
      {
        QueryConditionChangedEventArgs qce = new QueryConditionChangedEventArgs(_yourCondition);
        OnQueryConditionChanged(this, qce);
      }
    }MainForm中:private void MainForm_Button1_Click(object sender, EventArgs e)
    {
      QueryForm qf = new QueryForm();
      qf.OnQueryConditionChanged += new QueryConditionChangedEventHandler(foo);
      qf.ShowDialog(this);
    }private void foo(object sender, QueryConditionChangedEventArgs e)
    {
       //feel free to handle the query condition by using e.Condition
    }
    其余类推