我最近在做一个系统!碰到一个问题!
创建两个窗体a和b
从a窗体是(销售定单主窗体)点击一个按钮可以进入b窗体,在b窗体里输入一些值(销售定单相关的数据),点击b窗体后的“确定”按钮后,在b窗体输入的那些值就会出现在a的datagrid控件中!我现在的问题是,在点击“确定”的按钮后怎么让输入的数据自动显示在a窗体里的datagrid控件。我在a窗体(销售定单主窗体)
//保存从b窗体中选择后传过来的数据,它们将被放入DataGrid的相应表格中public static string [] inputDataGridArray = new string []{null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null};
//在b窗体的“确定”按钮的事件中把值传到a窗体创建的静态数组中
private void btnOK_Click(object sender, System.EventArgs e)
{
EnterStock.inputDataGridArray[0]=this.textBox1.Text.ToString().Trim();
EnterStock.inputDataGridArray[1]=this.textBox10.Text.ToString().Trim();
EnterStock.inputDataGridArray[2]=this.comboBox1.Text.ToString().Trim();
EnterStock.inputDataGridArray[3]=this.comboBox2.Text.ToString().Trim();
EnterStock.inputDataGridArray[4]=this.textBox2.Text.ToString().Trim();
EnterStock.inputDataGridArray[5]=this.textBox3.Text.ToString().Trim();
EnterStock.inputDataGridArray[6]=this.textBox4.Text.ToString().Trim();
EnterStock.inputDataGridArray[7]=this.textBox5.Text.ToString().Trim();
EnterStock.inputDataGridArray[8]=this.comboBox3.Text.ToString().Trim();
EnterStock.inputDataGridArray[9]=this.comboBox4.Text.ToString().Trim();
EnterStock.inputDataGridArray[10]=this.textBox12.Text.ToString().Trim();
EnterStock.inputDataGridArray[11]=this.textBox6.Text.ToString().Trim();
EnterStock.inputDataGridArray[12]=this.textBox7.Text.ToString().Trim();
EnterStock.inputDataGridArray[13]=this.textBox8.Text.ToString().Trim();
EnterStock.inputDataGridArray[14]=this.textBox9.Text.ToString().Trim();
EnterStock.inputDataGridArray[15]=this.textBox11.Text.ToString().Trim();   
}但怎么在点击b窗体的“确定”按钮后可以同时让a的datagird控件里自动填充值!
怎么去在datagird添加值!我会写!
我现在想知道怎么自动的去添加!就是在点击b窗体的“确定”按钮同时把值也传给datagrid。恳请各位大虾,高手帮帮忙!小弟第一次用C#做系统!
麻烦说的具体点!呵呵!
先谢了!
在线等候!

解决方案 »

  1.   

    Form b = new Form(...);
    if(b.ShowDialog() == DialogResult.Ok)
    {
    ///设置A的值
    a.datagrid.cell..... = b.ssss;
    }
      

  2.   

    在B窗体里创建一个事件,先创建一个委托xxHander(EnterStock),EnterStock就是你要传的数组,然后根据这个委托创建事件,事件在你按确定是触发,
    在A调用B窗体时,添加该事件实例,然后按确定时就可以自动执行你的事件,把东西加到你的DATAGRID里面
      

  3.   

    现在有form1 和 form2form1 向form2中传值form2中这样写
    在声明处加上
    private Hashtable parameter = new Hashtable();再加个属性public Hashtable Parameter
    {
    get{return parameter;}
    set{parameter = value;}
    }form1中这样写Form2 f2 = new Form2();
    f2.Parameter.Add("A", "来自FORM1中的A");//可以是任意类型的数据
    f2.Parameter.Add("B", "来自FORM1中的B");//在form2中接值时记得要类型转换
    f2.Show();form2中接值时string s = parameter["A"].ToString();
    MessageBox.Show(s);
    string s = parameter["B"].ToString();
    MessageBox.Show(s);//最后把hashtable中的键值移除
    parameter.Remove("A");
    parameter.Remove("B");
      

  4.   

    写个简单的窗口传值你看看,可能会有些启发。
    窗口1
    有一个textBox1
    窗口2
    有一个textBox2
    点A的按钮打开2窗口,在2窗口里输入值,确定后值显示在2窗口里。
    在1窗口的按钮的click事件里写如下代码:
    Form lForm=new Form2(this.textBox);
    lForm.ShowDialog();在2窗口里写如下代码
    Private TextBox lTextBox;
    Form2(TextBox w1)
    {
        this.lTextBox=w1;
    }
    在按钮click事件里写如下代码:
    this.lTextBox.text=this.textBox2.text;
    this.Close();
    这样你在打开的窗口里输入信息,确定后打开的窗口2关闭,值会传到窗口1中。
      

  5.   

    feels30000(船长) 
    你的思路对我挺有启发的!nocolor(笨笨星) 
    你的方法我以前曾经用过!
    但是觉得不好!wangkenping(找有感觉的妹妹)
    呵呵!。