2012-04-17 104 views
1

当我双击我的form1中的文本框时,打开一个数据网格。我需要在form2中对数据网格的单元格进行两次单击,当我单击它时,它已经为form1中的文本框带来了价值。我已经尝试了许多方法不再有效,他已经自动运行,在我单击单元格之前,会自动在文本框中添加值,任何人都可以帮忙吗?以另一种形式将数据传递给Datagrid文本框

我尝试这样做:

在Form1

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

的窗口2

公共字符串getNCM() { = dataGridView1.CurrentCell.Value.ToString VALUE2串(); 返回值2; } 只有这样,它选择已经拥有DataGrid的价值,我无法改变,如果我改变它没有考虑的价值为文本框在Form1

+0

能否请您进一步澄清,不幸的是它是很难理解你的意思:( – 2012-04-17 23:51:27

+0

我想将值传递给另一种形式的数据网格文本框 – 2012-04-17 23:53:46

+0

因此,您有Form1和Form2。从form1开始Form2,并且您想传递一个值?还有,它是Web应用程序还是Windows? – 2012-04-17 23:56:04

回答

0

设计智慧,一种形式应该永远知道其他形式有一个文本框或下拉或其他控制。理想情况下,两种形式应通过公共财产或自定义事件进行交互。

分配值从窗体2到Form1

  1. 定义表格的自定义事件2

  2. 请在Form1与该事件注册,这样,当表2楼的火灾吧,Form1中能抓住它。

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

  4. 在Form1,事件处理程序应该得到的行动和那里你可以指定2

这里的做的正是将物品从形式发送的值: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(); 
+0

**几乎如此,请参阅:form1包含ncmcb.Text,这是我单击以打开form2的位置。 form2包含datagrid我想获取一个值并发送到form1中的ncmcb.Text,你知道吗?** – 2012-04-18 00:15:07

+0

我明白了。所以Form2具有网格单元,并且该值需要分配给Form 1.在这种情况下,您需要一个不同的解决方案。让我更新我的答案。 – 2012-04-18 00:16:40

+0

我听不懂 – 2012-04-18 00:32:03

相关问题