我在 form1 中有一个 datagridview,在另一个表单上有标签框。我想做的是每当在form1中选择一行时,它的所有数据都将使用labelboxe显示在form 2上。这意味着,所选行的每一列都将分配到其相应的标签框中。
问问题
3400 次
1 回答
2
有几种方法可以做这样的事情。这里有两种传递数据的方法:
在 Form2 中,您需要创建第二个构造函数,该构造函数将采用两个对象:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public string yourName { get; set; }
public int Age { get; set; }
public Form2(string name, int age)
{
InitializeComponent();
yourName = name;
Age = age;
}
private void Form2_Load(object sender, EventArgs e)
{
label1.Text = yourName;
label2.Text = Age.ToString();
}
}
在 Form1 中,您创建 Form2 的一个实例,并传递对象:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 F2 = new Form2("Jon Smith", 33);
this.Hide();
F2.ShowDialog();
}
}
或者你可以这样做:
在表单 2 上,您需要将标签修饰符属性设置为公共,因为默认情况下它们将设置为私有。您可以从设计模式的属性选项卡中执行此操作。
完成后,在 form1 中,您可以创建 Form2 的实例并将值传递给公共标签:
Form2 f2 = new Form2();
f2.label1.text = datagridview1.currentRow.cells[0].value.tostring();
f2.ShowDialog();
希望这可以帮助。
于 2013-01-19T09:59:22.367 回答