假设
form1有一个查询按钮和文本框txt1,在from1中写一个公共方法用于填充txt1的内容
form2有一个datagrid,写一个公共方法用于绑定数据到datagrid
form1的查询按钮点击时调用form2的绑定数据的方法
form2选择一条记录时调用form1的填充文本内容的方法

解决方案 »

  1.   

    可以在子窗体写构造函数,然后主窗体中new form1(参数)  这样在子窗口就可以使用传过来得值了 ,然后你可以在主窗体中直接调用子窗体里面控件得值  form1.textbox...这类得  这样就可以获得子窗体得值  至于细节 自己想下
      

  2.   

    重载一个form2的构造方法,里面带参数。用这个方法创建form2。
      

  3.   

    class form1 : form
    ......
    private Button btn = new Button();
    private TextBox tb = new TextBox();
    btn.Click += new EventHandler(btnClick);
    .....
    private void btnClick(object sender,eventargs e)
    {
    Form2 frm = new Form();
    if (dialogresult ==frm.showdialog(this))
    {
    this.tb.text = frm.CustomResult;
    }
    }class Form2 : Form
    {
    private string _CustomResult;
    //存储你选定的值
    public string CustomResult
    {
    get
    {
    return _CustomResult;
    }
    }
    }
      

  4.   

    private void btnClick(object sender,eventargs e)
    {
    Form2 frm = new Form2();
    if (dialogresult.OK ==frm.showdialog(this))
    {
    this.tb.text = frm.CustomResult;
    }
    }
      

  5.   

    说个思路吧,看别人的代码将是一件非常痛苦而且效率低下的活,希望我的思路能给楼主一些启发
    //这是WinForm的
    窗体1  F1  TXT1(一个文本框)
    窗体2  F2  DG(一个DataGrid)将F1中查询出来的结果集(放到datatable中)
    在F2中也要定义一个datatable,然后在showDialog F2之前把结果集赋给F2中的datatable
    同样也在F2中定义一个文本框,可以通过构造函数把它传到F2中,并且与F2中定义的文本框关联,这样就可以了.或许说的有点抽象.呵呵 //为代码
    Form2 F2 = New Form2(TXT1);
    datatable1 = F2.Datatable2;
    F2.ShowDialog();在Form2中增加一个这样的构造函数
    private TextBox TXT2;
    public void Form2(TextBox TXT1)
    {
        TXT2 = TXT1;
        InitializeComponent();
    }
    利用的是对象引用的原则
      

  6.   

    //为代码
    Form2 F2 = New Form2(TXT1);
    datatable1 = F2.Datatable2;
    F2.ShowDialog();不好意思,这个写反了,应该是这样F2.Datatable2 = datatable1;