1

我有 3 个表单form1,,form2. form3form1 将首先加载/运行。当我按下一个按钮时form1,它将打开一个form2带有文本框的新按钮。当我单击文本框时,它将打开form3一个包含多行的 datagridview。

所以我使用了上下文菜单条form3并将项目命名为选择,比如如果我选择 datagridview 行并选择 contextmenustrip 项目选择(比如 datagridview 有两列名称和密码),密码必须输出文本框存在于form2. 我试过了,但什么也没发生。

form1 按钮点击事件

    private void AddBusMasterBtn_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form2 Obj = new Form2();
        Obj.ShowDialog();
        this.Show();
    }

form2有一个文本框,当我单击该文本框时,将打开一个新表单,其中有一个数据网格视图和上下文菜单条,其中包含名为 select 的项目,如果我选择带有项目选择的条,它必须将选定的行项目放在form2

    private void FromStopIDtextBox_Click(object sender, EventArgs e)
    {
        Form3 obj = new Form3();
        obj.ShowDialog();
    }

这是选择上下文菜单条项目

    private void selectToolStripMenuItem_Click(object sender, EventArgs e)
    {
        int Row = dataGridView1.CurrentRow.Index;
        string StopId_var = dataGridView1[0, Row].Value.ToString();
        form2 obj = new form2();
        obj.textbox.text = StopId_var;

        this.Close();
    }
4

1 回答 1

1
Form3 obj = new Form3(ref textBox);
obj.ShowDialog();

您需要创建第二个构造函数Form3,它从 Form2 中获取文本框,作为参考。

 Textbox textbox;
    public Form3(ref TextBox _textbox)
    {
       InitializeComponents();
      textbox = _textbox;
    }

现在,当单击菜单项时,您必须将当前单击的行列值的值分配给文本框文本;

 private void selectToolStripMenuItem_Click(object sender, EventArgs e)
 {
        int Row = dataGridView1.CurrentRow.Index;
        string StopId_var = dataGridView1[0, Row].Value.ToString();
        textbox.Text = StopId_var;
        this.Close();
  }
于 2013-03-20T11:02:51.153 回答