以另一种形式将数据传递到Datagrid文本框

时间:2012-04-17 23:48:56

标签: c#

当我双击form1中的文本框时,我打开了一个数据网格。我需要在form2中对datagrid的单元格进行两次单击,当我单击它时,已经将值带到form1中的文本框中。我已经尝试了很多不再适用的方法,在我点击单元格之前,他已经自动运行了自动添加文本框中的值,有人可以帮忙吗?

我试过了:

in form1

         Ncm Ncm formNcm = new ();
         formNcm.Show ();
         ncmcb.Text formNcm.getNCM = ();
         ncmcb.Focus ();

form2

public string getNCM()          {              = dataGridView1.CurrentCell.Value.ToString value2 string();              返回值2;          } 只有这样它才会选择已经拥有datagrid的值而且我无法更改,如果我更改它不会获取form1中文本框的值

1 个答案:

答案 0 :(得分:0)

设计明智,一个表单永远不会知道其他表单有文本框或下拉或其他控件。理想情况下,两个表单应通过公共属性或自定义事件进行交互。

将值从Form2分配给Form1

  1. 在表单2中定义自定义事件。

  2. 使用该事件创建Form1注册表,以便在表单2触发时,Form1可以捕获它。

  3. 在Form2中捕获网格单元格单击事件并触发自定义事件。您将使用EventArgs传递值。

  4. 在Form1中,事件处理程序应该开始运行,您可以在其中分配从表单2发送的值。

  5. 这是一篇完全相同的文章:http://www.codeproject.com/Articles/17371/Passing-Data-between-Windows-Forms

    如果要将Form2中的值分配给Form1,

    在表格2中,定义一个属性,例如

    publis string MyTextBoxValue //Choose a better name :)
    {
         set {myTextBox.Text = value;}
    }
    

    当您打开表单时,您将按以下方式拨打电话,

         Ncm Ncm formNcm = new ();
         formNcm.MyTextBoxValue = "Grid Cell Value"; //Whatever your value is
         formNcm.Show ();
         ncmcb.Text formNcm.getNCM = ();
         ncmcb.Focus ();