Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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#_Forms - Fatal编程技术网

C#将父窗体数据发送到子窗体

C#将父窗体数据发送到子窗体,c#,forms,C#,Forms,试图以另一种形式激活此功能。我希望listBox1中的对象转到标签:form2中的label3和label4。PropertyA应分配给label3,PropertyB应分配给label4。它只需从form1加载数据。问题在form2代码中。当从列表框中选择一个项目时,它将写入属性,以便为下一个form2实例准备这些属性。 大部分代码都相当简短和简单 做了一个简单的程序来说明 找到了解决办法。。。。参见表单2,在表单之间强制转换listbox1.SelectedItems作为SpecialCla

试图以另一种形式激活此功能。我希望listBox1中的对象转到标签:form2中的label3和label4。PropertyA应分配给label3,PropertyB应分配给label4。它只需从form1加载数据。问题在form2代码中。当从列表框中选择一个项目时,它将写入属性,以便为下一个form2实例准备这些属性。 大部分代码都相当简短和简单

做了一个简单的程序来说明

找到了解决办法。。。。参见表单2,在表单之间强制转换listbox1.SelectedItems作为SpecialClass类型的对象是一个问题

阶级

表格1

表格2

 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)
        {

        }
    }
}