C#将值传递给新表单

时间:2012-05-03 10:35:55

标签: c# .net visual-studio c#-4.0

当我点击按钮时,我尝试将窗体中的值传递给新窗体。使用:

private void Edit_button_Click(object sender, EventArgs e)
        {
             for (int i = 0; i < listBox1.SelectedItems.Count; i++)
            {

             Edit item = new Edit(int.Parse(listBox1.SelectedIndex.ToString()));
            item.ShowDialog();

            }
        }

当我运行程序时,它没有显示我设计的表单,而是显示了这个 problem

但是当我将代码更改为:

 Edit item = new Edit();
   item.ShowDialog();

运行它,它会显示正确的内容,但不会将值传递给第二个表单。 enter image description here

我有办法将值传递给另一个表单吗?

3 个答案:

答案 0 :(得分:7)

添加属性

Edit item = new Edit();
item.Value = 5;
item.ShowDialog();

编辑:

您必须定义此属性才能使用它。像这样扩展您的Edit课程:

class Edit {
    ...
    public int Value { get; set; }
    ...
}

答案 1 :(得分:1)

确保您的参数化构造函数在其正文中有InitiaizeComponent()。由于此函数名称指定它初始化表单的组件,即公司标签,文本框和按钮。

我会告诉你如何。

创建编辑表单的参数化构造函数。将该值传递给变量

public class Edit
{
    public int val = 0;

    public Edit()
    { 
        InitializeComponent();
    }

    public Edit(int a)
    {
        val = a; 
        InitializeComponent();
    }

    public void Edit_Load()
    {
      txtbox.Text = val.ToString();
    }
}

并从第一个表单调用编辑,如

Edit item = new Edit(5);

答案 2 :(得分:1)

只是猜测:在你自己的构造函数中,你忘了调用IntializeComponents()。