-4

我的一个项目中有两种表格。在 form1 我有一个 dataGridView,在 form2 我有 4 个文本框。在 Form1 中,我想使用 CellMouseClick 事件从 datagridview 中获取变量中的值,然后将其传递给 Form2 中的 TextBox

我试过这个。

form1 # 它给了我一个错误

public form(int id)
{
    int x;
    x = dataGridView1.CurrentRow.Cells[0].Value.ToString();
}

以及我想在 form2 中做什么

4

3 回答 3

7

使用构造函数,您可以构造具有给定构造先决条件的类型。

如果这意味着一个整数,那么就这样吧:

public MyForm(int id) {
  SomeIdProperty = id;
}

而不是var form = new MyForm();,做:

var form = new MyForm(idOfTheRelevantThing);

然后展示它。

于 2013-02-26T22:24:49.693 回答
4

表格1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        var frm2 = new Form2(dataGridView1.Rows[0].Cells[0].Value.ToString());
        frm2.Show();
    }
}

表格2

public partial class Form2 : Form
{
    public Form2(string s)
    {
        InitializeComponent();
        textBox1.Text = s;
    }
}
于 2013-02-26T22:46:51.647 回答
2

如果要显示Form2from Form1,则可以使用构造函数传递值。像这样的东西:

class Form2 {
    public string Value { get; set; }
    public Form2(string value) {
        Value = value;
    }

    public void Form2_Load() {
        textBox1.Text = Value;
    }
}

并执行此操作(内部Form1.cs):

Form2 f = new Form2("the value here");
f.ShowDialog(); //or f.Show();
于 2013-02-26T22:26:55.687 回答