C#在第二窗体将查询结果返回到主窗体DataGridView中

主窗体:MainFrom 查询窗体 Search
在主窗体单击查询按钮弹出查询窗体,
然后在查询窗体的文本框输入内容,
确定后将查询结果返回到主窗体的DataGridView控件中显示
最好有代码

像这样要求用户输入的窗体,其实与模式对话框非常相似。

1)在Search窗口中

将“确定”按钮的DialogResult属性设置为OK;

将“取消”按钮的DialogResult属性设置为Cancel。

如下图所示

2)在Search窗口后台代码中,添加一个属性NameToQuery

public string NameToQuery
{  get { return textBoxName.Text; }
  set { textBoxName.Text = value; }
}

3)在主窗口“查找”按钮的Click事件处理函数中

private btnSearch_Click(object sender, EventArgs e)
{
  FormSearch f = new FormSearch();
  //以模式对话框方式显示“Search”窗口 
  DialogResult r = f.ShowDialog();
  if (r == System.Windows.Forms.DialogResult.Cancel) 
  {
    //如果用户点击了"取消"按钮,则取消处理 
     return;
  }
  //获取用户输入的“要查询的名字”
  string strName = f.NameToQuery;

    //后续处理(代码略去)
}


温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-19
你的问题,其实就是两个窗体之间的数据交换吧?

方法有几种,一种是利用窗体的构造函数,在初始化的时候加载值,然后根据这个值做一些和正常加载窗体时不同的显示

另一种是利用全局变量,当全局变量被set的时候,触发一个方法是面向界面的,后面应该不用多说了吧
第2个回答  2013-10-19
举个例子:
假设窗体:
public string str="";
主窗体单击查询按钮事件:
Form2 f2 = new Form2();
f2.Show(this); //这里的"this"很重要
在Form2中确认按键中事件:
Form1 f1;
f1 = (Form1)this.Owner;
f1.str= "确认";
还有其他的方式:
比如:代理方法
相似回答