Переместить PictureBox из одной формы в другую C# - PullRequest
0 голосов
/ 23 апреля 2020

Я на самом деле пытаюсь запрограммировать в C# и хочу переместить изображение из pictureBox1 из Form1 в другой pictureBox1 из Form2.

Я сделал следующее

В Form1.cs:

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

В Form1.Designer: изменить с частного на publi c

public System.Windows.Forms.PictureBox pictureBox1;

В Form2.cs:

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

Но я получаю эту ошибку: CS0120: Ссылка на объект требуется для нефиксированного c поля, метода или свойства 'Form1.pictureBox1'

Может кто-нибудь помочь мне, пожалуйста? :)

1 Ответ

0 голосов
/ 23 апреля 2020

Хотя это нецелесообразно, но да, это возможно.

Сначала создайте графическое окно во внешнем файле класса, например:

using System.Windows.Forms;

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

Затем добавьте его в свою первую форму, скажем, еще одно событие нажатия кнопки откроет другую форму. Таким образом, вам сначала нужно будет удалить графический блок, что позволит использовать его во 2-й форме.

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);
}

Там вы должны переместить коробку с картинками из 1-й формы во 2-ю форму, а затем обратно в 1-ю форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...