当我点击按钮时,我尝试将窗体中的值传递给新窗体。使用:
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();
运行它,它会显示正确的内容,但不会将值传递给第二个表单。
我有办法将值传递给另一个表单吗?
答案 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()。