有没有一种方法可以将值/文本/数据从表单传递到另一表单

时间:2019-12-10 09:54:46

标签: c# database

我有一个包含StaffID的表单,并且表单还有一个“搜索”按钮,当我按下它时,它将打开另一个带有DataGridView的表单,然后当我双击一行时,它将将所选数据传递到另一种形式

这里的第一个表格First Form here

第二种形式,Second form where data came from

因此在第二个表单上,我将双击一行,然后它将数据字符串发送到第一个表单上的staffID文本框

这是我的代码(打开form2的同时是 form2.ShowDialog()

我的代码将数据发送到第一个表单

private void dgw_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    FrmStaff frmStaff = new FrmStaff();

    if (e.RowIndex >= 0)
    {
        DataGridViewRow row = dgw.Rows[e.RowIndex];
        frmStaff.txtStaffID.Text = row.Cells[0].Value.ToString();
    }
}

文本框也是修饰符:公共

但是问题是我没有价值。...

2 个答案:

答案 0 :(得分:1)

还有另一种方法。通过将全局变量类与静态变量一起使用,只能在main方法中初始化此全局类。

代码应如下所示

public class Globalvaribale()
{
  public static string sVale="";
  public static string sVale1="";
}

在主要方法中

 private void dgw_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        FrmStaff frmStaff = new FrmStaff();

        if (e.RowIndex >= 0)
        {
            DataGridViewRow row = dgw.Rows[e.RowIndex];
            Globalvaribale.sValue= row.Cells[0].Value.ToString();
            string getdata = row.Cells[0].Value.ToString();
             Globalvaribale.sValue1 = "Sample";
            MessageBox.Show(getdata);
        }
    }

您也可以将相同的变量与具有相同值的完整应用程序一起使用。

答案 1 :(得分:1)

如果您希望它在双击事件上显示新表单,如图所示,我将修改FrmStaff以将参数带入构造函数。

// In FrmStaff file
private string _staffId;

public FrmStaff(string staffId)
{
    _staffId = staffId;
}

然后,当您完成

frmStaff.Show()

现在在呼叫屏幕中将内部具有传递的staffId

希望这有帮助吗?