Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将值传递到新形式_C#_.net_Visual Studio_C# 4.0 - Fatal编程技术网

C#将值传递到新形式

C#将值传递到新形式,c#,.net,visual-studio,c#-4.0,C#,.net,Visual Studio,C# 4.0,当点击一个按钮时,我发现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.

当点击一个按钮时,我发现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.Value = 5;
item.ShowDialog();
编辑: 必须定义此属性才能使用它。像这样扩展您的
Edit
类:

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

确保参数化构造函数的主体中有
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,如

Edit item = new Edit(5);

猜测一下:在您自己的构造函数中,您忘记调用initializeComponents()。

这里有些奇怪。你能在表单编辑构造函数和表单加载事件中发布代码吗。这个循环似乎不太正确。(您打开的表单为每个选定项传递了相同的索引)我收到了以下错误“错误1不包含'Value'的定义,并且没有扩展方法'Value'接受类型为'company.Edit'的第一个参数”我该怎么办?
Edit item = new Edit(5);