5

当单击按钮时,我得到了 Windows 窗体,试图将值从该窗体传递到新窗体。使用:

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();

            }
        }

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

但是当我将代码更改为:

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

运行它,它会显示正确的内容,但不会将值传递给第二种形式。 在此处输入图像描述

我有办法将值传递给另一种形式吗?

4

3 回答 3

7

添加属性

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

编辑:

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

class Edit {
    ...
    public int Value { get; set; }
    ...
}
于 2012-05-03T10:37:24.897 回答
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);
于 2012-05-03T10:37:35.363 回答
1

只是一个猜测:在您自己的构造函数中,您忘记调用 IntializeComponents()。

于 2012-05-03T10:39:25.177 回答