C#将父窗体数据发送到子窗体
试图以另一种形式激活此功能。我希望listBox1中的对象转到标签:form2中的label3和label4。PropertyA应分配给label3,PropertyB应分配给label4。它只需从form1加载数据。问题在form2代码中。当从列表框中选择一个项目时,它将写入属性,以便为下一个form2实例准备这些属性。 大部分代码都相当简短和简单 做了一个简单的程序来说明 找到了解决办法。。。。参见表单2,在表单之间强制转换listbox1.SelectedItems作为SpecialClass类型的对象是一个问题 阶级 表格1 表格2C#将父窗体数据发送到子窗体,c#,forms,C#,Forms,试图以另一种形式激活此功能。我希望listBox1中的对象转到标签:form2中的label3和label4。PropertyA应分配给label3,PropertyB应分配给label4。它只需从form1加载数据。问题在form2代码中。当从列表框中选择一个项目时,它将写入属性,以便为下一个form2实例准备这些属性。 大部分代码都相当简短和简单 做了一个简单的程序来说明 找到了解决办法。。。。参见表单2,在表单之间强制转换listbox1.SelectedItems作为SpecialCla
namespace WindowsFormsApplication1
{
class SpecialClass
{
public string PropertyA { get; set; }
public double PropertyB { get; set; }
#region [Methods]
public override string ToString()
{
return string.Format("PropertyA: {0}, PropertyB: {1}", this.PropertyA, this.PropertyB);
}
#endregion
}
}
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void AddBtn_Click(object sender, EventArgs e)
{
SpecialClass o = new SpecialClass();
o.PropertyA = textBox1.Text;
o.PropertyB = double.Parse(textBox2.Text);
listBox1.Items.Add(o);
}
#region [Currently unused methods]
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
#endregion
private void openNewForm(object sender, EventArgs e)
{
Form2 form2 = new Form2(this);
form2.Show(this);
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
SpecialClass o = ((ListBox)sender).SelectedItem as SpecialClass;
label3.Text = o.PropertyA.ToString();
label4.Text = o.PropertyB.ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
Form1 form1Data = new Form1();
public Form2(Form1 _form1)
{
InitializeComponent();
form1Data = _form1;
}
private void label3_Click(object sender, EventArgs e)
{
SpecialClass oF2 = form1Data.listBox1.SelectedItem as SpecialClass;
label3.Text = oF2.PropertyA.ToString();
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
}