把这个DataSet做成模块变量不就行了!

解决方案 »

  1.   

    假定你的Click事件由Button引发:public class MyForm: System.Windows.Forms.Form
    {
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.Button button2;
        private System.Data.DataSet ds;    //Click事件1
        private void button1_Click(object sender, System.EventArgs e)
        {
            MyForm form = ((Button)sender).Parent;
            DataSet ds = form.ds;
            //...处理
        }    //Click事件2
        private void button2_Click(object sender, System.EventArgs e)
        {        MyForm form = ((Button)sender).Parent;
            DataSet ds = form.ds;
            //...处理
        }
    }
      

  2.   

    请问小竹,你上面的
    MyForm form = ((Button)sender).Parent;是什么意思??
    这样写能够把button1事件中运行的dataset结果带到button2中吗??
    谢谢指教!!!
      

  3.   

    更正:private System.Data.DataSet ds; 改为      public DataSet ds; 
          or
          private System.Data.DataSet ds
          public DataSet ds{ get{return this.ds;}set{this.ds=value;}}
          sender表示Click事件的引发者,
    button1_Click(...)中是button1,button2_Click(...)中是button1,MyForm form = ((Button)sender).Parent
    将sender强制转换到事件的引发者的实际类型,通过继承自Control的Parent属性获得它的父控件MyForm的实例的引用.
    ds是类的字段在MyForm的实例的生命周期中有效,两个事件中使用的是同一个DataSet。这种做法Click事件处理函数甚至不必是MyForm,或同一个类的方法
      

  4.   

    在DataSet的基础上用DataView来进一步筛选啊。