繁体   English   中英

将 PictureBox 从一种形式移动到另一种形式 C#

[英]Move PictureBox from one form to another form C#

我实际上正在尝试在 C# 中编程,并希望将图像从 Form1 的 pictureBox1 移动到 Form2 的另一个 pictureBox1。

我做了以下

在 Form1.cs 中:

 private void button1_Click(object sender, EventArgs e)
        {
            pictureBox1.Load("C:\\Users\\img_0.bmp");
        }

在 Form1.Designer 中:从 private 更改为 public

public System.Windows.Forms.PictureBox pictureBox1;

在 Form2.cs 中:

private void button1_Click(object sender, EventArgs e)
        {
            pictureBox1.Image = Form1.pictureBox1.Image;
        }

但我收到此错误:CS0120:非静态字段、方法或属性“Form1.pictureBox1”需要 object 引用

有人可以帮我吗? :)

虽然这样做不太合适,但是,是的,这是可以的。

首先在外部 class 文件中创建图片框,如下所示:

using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public class Class1
    {
        public static PictureBox pb1 = new PictureBox();
    }
}

然后将其添加到您的第一个表单中,假设另一个按钮单击事件将打开另一个表单。 所以你必须先删除图片框,这将允许第二个表单使用它。

public Form2()
{
    InitializeComponent();
    this.Controls.Add(Class1.pb1);
}

private void button2_Click(object sender, EventArgs e)
{
    this.Controls.Remove(Class1.pb1);
    Form3 f = new Form3();
    f.ShowDialog();
    this.Controls.Add(Class1.pb1);
}

然后,当您打开下一个表单时,添加图片框,并在下一个表单关闭时将其删除。

public Form3()
{
    InitializeComponent();
    this.Controls.Add(Class1.pb1);
    this.FormClosing += Form3_FormClosing;
}

private void Form3_FormClosing(object sender, FormClosingEventArgs e)
{
    this.Controls.Remove(Class1.pb1);
}

在那里,您已将图片框从第一种形式移动到第二种形式,然后再回到第一种形式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM