Ändern von Werten eines anderen Formulars aus einem separaten Formular (Lösung funktioniert nicht)

Völker. Heute versuche ich, das Hintergrundbild eines Panels aus einem separaten Formular zu ändern. Ich habe mir ein paar S.O. Fragen und sie haben alle gesagt, eine neue Formularvariable zu erstellen und ihre Werte zu ändern. Also habe ich das getan und ich bekomme keine Fehler, aber ich bekomme auch keine Änderung im Hintergrund. Ich meine Folgendes: (Dies ist die Hauptform, die ich ändern möchte.)

public static void changeGridSize(int newSize)
        {
            Form_Main frm = new Form_Main();
            switch (newSize) 
            {
                case 16:
                    frm.panelBoard.BackgroundImage = Properties.Resources.grid_16;
                    break;
                case 32:
                    frm.panelBoard.BackgroundImage = Properties.Resources.grid_32;
                    break;
                case 64:
                    frm.panelBoard.BackgroundImage = Properties.Resources.grid_64;
                    break;
                case 128:
                    frm.panelBoard.BackgroundImage = Properties.Resources.grid_128;
                    break;
            }
        }

Und hier ist die andere Form:

int newSize = 16;
Form_Main.changeGridSize(newSize);

Es ist höchstwahrscheinlich etwas Dummes, aber ich bin in diesem Fall ratlos.

BEARBEITEN

Hier die Dateien

Hauptform

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LWJSGL_Level_Editor
{
    public partial class Form_Main : Form
    {
        public static int gridSize = 32;
        public Image pbg 
        {
            get { return this.panelBoard.BackgroundImage; }
            set { this.panelBoard.BackgroundImage = value; }
        }
        public String curTile = "";
        public Form_Main()
        {
            InitializeComponent();
        }

        private void Form_Main_Load(object sender, EventArgs e)
        {

        }

        private void buttonTile_Click(object sender, EventArgs e)
        {
            //show file dialog
            openFileDialogTile.ShowDialog();
        }

        private void openFileDialogTile_FileOk(object sender, CancelEventArgs e)
        {
            curTile = openFileDialogTile.FileName;
            Msg(curTile);
        }

        public void Msg(String str)
        {
            MessageBox.Show(str);
        }

        private void buttonSettings_Click(object sender, EventArgs e)
        {
            Form_Settings fs = new Form_Settings();
            fs.ShowDialog();
        }

        public void changeGridSize(int newSize)
        {
            switch (newSize) 
            {
                case 16:
                    this.panelBoard.BackgroundImage = Properties.Resources.grid_16;
                    break;
                case 32:
                    this.panelBoard.BackgroundImage = Properties.Resources.grid_32;
                    break;
                case 64:
                    this.panelBoard.BackgroundImage = Properties.Resources.grid_64;
                    break;
                case 128:
                    this.panelBoard.BackgroundImage = Properties.Resources.grid_16;
                    break;
            }
        }

    }
}

Andere Form

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LWJSGL_Level_Editor
{
    public partial class Form_Settings : Form
    {
        int newSize;

        public Form_Settings()
        {
            InitializeComponent();
        }

        private void buttonSaveSettings_Click(object sender, EventArgs e)
        {
            //save settings
            Form_Main.gridSize = newSize;
            Form_Main frm = new Form_Main();
            frm.changeGridSize(newSize);
            this.Close();
        }

        private void radioButtonGridSize16_CheckedChanged(object sender, EventArgs e)
        {
            newSize = 16;
        }

        private void radioButtonGridSize32_CheckedChanged(object sender, EventArgs e)
        {
            newSize = 32;
        }

        private void radioButtonGridSize64_CheckedChanged(object sender, EventArgs e)
        {
            newSize = 64;
        }

        private void radioButtonGridSize128_CheckedChanged(object sender, EventArgs e)
        {
            newSize = 128;
        }

        private void Form_Settings_Load(object sender, EventArgs e)
        {
            switch (Form_Main.gridSize)
            { 
                case 16:
                    this.radioButtonGridSize16.Checked = true;
                    break;
                case 32:
                    this.radioButtonGridSize32.Checked = true;
                    break;
                case 64:
                    this.radioButtonGridSize64.Checked = true;
                    break;
                case 128:
                    this.radioButtonGridSize128.Checked = true;
                    break;
            }
        }
    }
}

Die Erweiterungsmethode muss definiert werden, da in Zeile 13 des Hauptformulars ein nicht generischer statischer Klassenfehler auftritt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage