如何将数据从数据网格视图中的选定行传递到另一个表单的标签

时间:2013-01-19 07:34:42

标签: c# winforms datagridview

我在form1中有一个datagridview,在另一个表单上有labelboxes。我想要做的是每当在form1中选择一行时,它的所有数据都将使用labelboxe显示在表单2上。这意味着,所选行的每一列都将分发到相应的标签框。

1 个答案:

答案 0 :(得分: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();

希望这有帮助。