注册 登录
编程论坛 C# 论坛

请问如何在子窗体中修改主窗体的pictureBox的图片?

wen045 发布于 2021-08-22 10:46, 1224 次点击
刚学C#,想在想弹出的子窗体中修改主窗体中图片框中的图片,pictureBox1的Modifiers属性也改为public.
            OpenFileDialog fd = new OpenFileDialog();
            fd.Filter = "JPG图片|*.jpg|PNG图片|*.png|BMP图片|*.bmp";
            if (fd.ShowDialog() == DialogResult.OK)
            {
                F_Main f_Main = new F_Main();
                f_Main.pictureBox1.Image = System.Drawing.Image.FromFile(fd.FileName);
              }

就是不知为什么总是不成功。
度娘也查,找不到合格的答案,请各位大侠请赐教,有什么方式可以修改!谢谢!
2 回复
#2
qq28895779662021-08-23 08:30
省事写法
Form1.cs
程序代码:

using System.Drawing;
using System.Windows.Forms;

namespace Test1
{
    public partial class Form1 : Form
    {
        public static PictureBox pb;
        public Form1()
        {
            InitializeComponent();

            this.StartPosition = FormStartPosition.CenterScreen;

            pb = new PictureBox()
            {
                Size = new Size(250, 250),
                Location = new Point(10, 10),
                Image = Image.FromFile("3.png"),
            };
            this.Controls.Add(pb);

            Load += (s, e) => {
                new Form2().Show();
            };
        }
    }
}


Form2.cs
程序代码:

using System.Drawing;
using System.Windows.Forms;

namespace Test1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();

            this.StartPosition = FormStartPosition.Manual;
            this.Location = new Point(0, 0);

            Button btn = new Button()
            {
                Text = "change!",
                Location = new Point(10, 10)
            };
            btn.Click += (s, e) =>
            {
                Form1.pb.Image = Image.FromFile("11.gif");
            };
            this.Controls.Add(btn);
        }
    }
}
#3
wen0452021-08-24 09:46
回复 2楼 qq2889577966
谢谢,确实可以!
1