C# 在父窗体的文本框中显示子窗体中gridview所选单元格的值

C# 在父窗体的文本框中显示子窗体中gridview所选单元格的值,c#,visual-studio,winforms,textbox,C#,Visual Studio,Winforms,Textbox,这是我的代码: 以家长形式: public void tokenform_Load(object sender, EventArgs e) { tbvarchecker.Text = HelpForm.code; } private void TextBox1_KeyDown(object sender, KeyEventArgs e) { HelpForm help = new HelpForm(); if (e.Ke

这是我的代码: 以家长形式:

public void tokenform_Load(object sender, EventArgs e)
    {
       tbvarchecker.Text = HelpForm.code;
    }
   private void TextBox1_KeyDown(object sender, KeyEventArgs e)
    {
        HelpForm help = new HelpForm();
        if (e.KeyCode == Keys.F2)
        {               
            help.Show();               
        }
    }
    public void setvalues(string cd)
    {
        tbvarchecker.Text = cd;
        label10.Text = cd;
    }

  Child Form code:
     private void dgv(object sender, DataGridViewCellMouseEventArgs e)
    {
        DataGridViewRow row = dgvshowallfields.Rows[e.RowIndex];

        code = row.Cells[0].Value.ToString();
        code1 = row.Cells[0].Value.ToString();
        this.Close();
    }

    private void HelpForm_FormClosed(object sender, FormClosedEventArgs e)
    {
        tokenform tkf = new tokenform();
       tkf.setvalues(code);
        tkf.setvalues(code1);
        tkf.tokenform_Load(sender,e);

    }

    //private void HelpForm_FormClosing(object sender, FormClosingEventArgs e)
    //{
    //    tkf.setvalues(code);
    //}
此代码声明为公共静态字符串代码,而代码1只是字符串。 我还检查了断点,值到达父窗体函数集值中的函数,但仍然无法在文本框中显示它。
伙计们,有人能帮我吗…?

首先,将父窗体传递给您的
Show()
呼叫

更改:

help.Show();
致:

然后,在子窗体中,可以将
.Owner
属性强制转换为父窗体类型并调用其方法:

private void HelpForm_FormClosed(object sender, FormClosedEventArgs e)
{
    tokenform tkf = this.Owner as tokenform;
    if (tkf != null) 
    {
        tkf.setvalues(code);
        tkf.setvalues(code1);
        tkf.tokenform_Load(sender,e);
    }
}

非常感谢,兄弟,这很有帮助,但是你能解释一下我做错了什么,为什么我不能早点显示这个值吗?……在FormClosed()事件中,你创建了一个新的tokenform实例。您试图使用的实例是不可见的,与您在屏幕上看到的实例不同。
private void HelpForm_FormClosed(object sender, FormClosedEventArgs e)
{
    tokenform tkf = this.Owner as tokenform;
    if (tkf != null) 
    {
        tkf.setvalues(code);
        tkf.setvalues(code1);
        tkf.tokenform_Load(sender,e);
    }
}