在动态按钮事件里如何调用动态生成datagridview控件

在动态按钮事件里怎么调用动态生成datagridview控件
代码如下: 
                  public void make()
              {
                 
                 //生成控件button
                 for(int i=0; i<Convert.ToInt16(textbox1.Text);i++)
                 {
    DataGridView data=new DataGridView();
                    data.Name="data"+i.ToString();
                    string sele="select * from queue"
                    DataSet ds=DAL.ds(sele);
                    data.DataSoure=ds.Tables[0];
                    pan1.Controls.Add(data);

                    Button btn=new Button();
                    btn.Name="btn"+i.ToString();  
                    btn.Click+=new EventHandler(btn_Click);
                    pan1.Controls.Add(btn);
                 } 
              }
              
              public void btn_Click(object sender,EventArgs e)
              {
                   Button btn=(Button)(sender);
                   if(btn.Name=="btn0")
                   {
MessageBox.Show("点击了第一个按钮");
                    }
    
                   //DataGridView要怎么调用呢
                   //DataGridView data=sender as DataGridView;
                   //if(data.Name=="data0")//这里报错 、未将对象引用到对象实例
              }

在按钮事件里怎么才能调用到动态生成的datagridview控件的行和列呢

新手新手、求指点
------解决方案--------------------
你需要在Button里保存动态生成的DataGridView
Button.Tag = data;


然后

 Button btn=(Button)(sender);
if(btn.Name=="btn0")
{
    var dgv = btn.Tag As DataGridView;
   ...
}