如何在表单中发送创建对象,从C#中的另一个表单进行排序?

时间:2017-03-11 04:16:10

标签: c# forms

亲爱的天才开发者, 我正在用C#开发一个包含几种形式的程序。我需要在名为" Sub_Winding1"的形式中创建一个图片框。当我在那里按下按钮时,我处于另一种形式。

我尝试了这个,但它没有工作:

            PictureBox CopyPic1 = new PictureBox()
            {
                Name = PicBox_Name,
                Image = Image.FromFile(@"C:\C#\...\Image\textura.jpg"),
                SizeMode = PictureBoxSizeMode.CenterImage
            };
            CopyPic1.Location = new Point(X_Location, Y_Location);
            CopyPic1.Size = new System.Drawing.Size(X_Size, Y_Size);
            CopyPic1.BackColor = PictureBox_Color;
            Sub_Winding1 ThisForm = new Sub_Winding1();
            ThisForm.Controls.Add(CopyPic1);

如果你能找到解决方案,我将不胜感激。感谢。

3 个答案:

答案 0 :(得分:0)

你没有在任何地方打开第二张表格,你应该打电话给 Show() ,以便向用户显示控件。只需尝试此代码,

Sub_Winding1 ThisForm = new Sub_Winding1();
ThisForm.Controls.Add(CopyPic1);
ThisForm.Show();

答案 1 :(得分:0)

根据您的评论,我会说问题就在这一行:

Sub_Winding1 ThisForm = new Sub_Winding1();

这将创建Sub_Winding1的新实例。但是你说你已经在某个地方有了一个实例,它已经通过其他方式显示出来了。

您需要获得对该表单的引用,而不是创建一个新表单,例如

Sub_Winding1 ThisForm = GetFormFromSomeWhere();  //Up to you to write GetFormFromSomewhere

如果您使用相同的名称嵌入它,可能看起来像这样:

Sub_Winding1 ThisForm = SomeOtherForm.Sub_Winding1;

您可能必须公开子表单。

答案 2 :(得分:0)

实际上,这部分代码没有任何问题:

        PictureBox CopyPic1 = new PictureBox()
        {
            Name = PicBox_Name,
            Image = Image.FromFile(@"C:\C#\...\Image\textura.jpg"),
            SizeMode = PictureBoxSizeMode.CenterImage
        };
        CopyPic1.Location = new Point(X_Location, Y_Location);
        CopyPic1.Size = new System.Drawing.Size(X_Size, Y_Size);
        CopyPic1.BackColor = PictureBox_Color;

但我不知道如何将此图片框添加到另一个已经打开并且在此表单后面的表单中!