如题,我想实现一个查询,就是我在第一个FORM1的TEXTBOX1那里填入了一个学号,然后我想通过一个按钮BUTTON1,单击后在FORM2那里有一个DATAGRIDVIEW1显示出这个学号的学生资料,请问各位应该如何解决????

解决方案 »

  1.   


    //Form1,设学号是字符型,整型也一样
    public string stuNo = string.Empty;  //传递学号,也可使用静态变量protected void button1_Click(object sender,EventArgs e)
    {
      if(TextBox1.Text.Length > 0)
      {
        stuNo = TextBox1.Text;
        Form2 f = new Form2();
        f.Owner = this;
        f.Show();
        //this.Close();
      }
    }//Form2
    private string searchStuNo;
    protected Form_Load(object sender,EventArgs e)
    {
      Form1 f = this.Owner as Form1;
      if(f != null)
      {
        searchStuNo = f.stuNo;子  //传递的学号
        //code
      }
    }
      

  2.   

    在form2里面定义个属性,点击button时,把textbox的值赋过去就行了
      

  3.   

    也可以用构造函数传值,
    学号传过去就根据学号查出数据绑定DataGrid
      

  4.   

    楼主可以通过点击From1中的button按钮,把输入在textbox中的值传递到From2中,在From2中连接数据库把数据显示在greedView中,关于两个窗体间传值问题:
    在实际开发应用中,常常需要在窗体间传递参数。常用的几种参数传递方法有如下几种: 以下内容来自网上。
    1。使用openargs 
    在调用的窗体使用如下语句: 
    docmd.openform "被调用的窗体", , , , , , "参数值" 
    在被调用的窗体使用me.openargs即可获取传递过来的参数 
    2。使用全局变量 
    先设置一个全局变量,例如:gstrPara, 
    Public gstrPara as string 
    在调用之前传递参数值给这个全局变量 
    gstrPara="参数值" 
    docmd.openform "被调用的窗体" 
    在被调用的窗体里使用gstrPara即可获取传递过来的参数 
    3。使用tag标记 
    将要传递的参数放置在调用窗体的tag标记里
    在被调用的窗体里通过调用 forms("调用的窗体").tag 来获取参数值 
    4。使用模块变量 
    在调用窗体设置一个公共的模块变量 mstrPara 
    将要传递的参数放置在调用窗体的mstrPara变量里 
    在被调用的窗体里通过调用 forms("调用的窗体").mstrPara 来获取参数值 
    5。直接获取 
    如果参数来自调用窗体的控件,也可直接调用 
    在被调用的窗体里直接引用调用窗体的控件的值 如:forms("调用的窗体").控件名.value 
    6。多个参数传递 
    如果需要传递多个参数,可将参数合并到一个变量里传送(使用指定符号隔开),然后在被调用窗体再拆分这些变量,以达到多个参数传递的效果。 
    不过,因为一般传递两个参数的时候,多数一个是变量,一个是窗体本身,
    所以我常用的方法也是比较实用的方法是: 
    在调用窗体使用如下语句: 
    docmd.openform "被调用的窗体", , , , , , "参数值" 
    而在被调用的窗体里设置一个模块变量 mfrmSrc 
    在被调用的窗体的open或load事件中设置 
    set mfrmSrc= screen.activeform 
    这时mfrmSrc就指向原来的调用窗体(因为在窗体未完全加载好前,屏幕上激活的窗体是原来的窗体) 
    使用mfrmSrc你可以获取调用窗体上所有控件及相关的值,并且不需要事先知道原来窗体的名称,具有比较强的通用性。