0

Есть две формы .cs. В каждой есть кнопка. В Form1.cs есть кнопка button_1, в 2.cs button_2

Код 1.cs:

namespace fn
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    public void loadform(object Form)
    {
        if (this.mainpanel.Controls.Count > 0)
            this.mainpanel.Controls.RemoveAt(0);
        Form f = Form as Form;
        f.TopLevel = false;
        f.Dock = DockStyle.Fill;
        this.mainpanel.Controls.Add(f);
        this.mainpanel.Tag = f;
        f.Show();
    }

    private void btn_switch_Click(object sender, EventArgs e)
    {
        loadform(new _2());
    }
}

}

Код 2.cs:

namespace fn
{
    public partial class _2 : Form
    {
        public _2()
        {
            InitializeComponent();
        }
    private void button_1_Click(object sender, EventArgs e)
    {
        button_1.BackColor = Color.Green;
        button_2.BackColor = button_1.BackColor;    
    }
}

}

введите сюда описание изображения

Задача состоит в том, что мне нужно чтобы при нажатии кнопки button_1 в форме 2.cs, кнопка button_2 в форме Form1.cs меняла цвет на такой же

Буду очень благодарен за помощь

Max
  • 3
  • 1
    Отредактируйте вопрос, покажите код, про который говорите. Названия в тексте похожи на шифр, ничего непонятно. Какая задача решается? Об этом тоже напишите в вопросе. – aepot Feb 24 '24 at 16:45
  • https://drive.google.com/file/d/1xNv_2hLLYnYZUoalKQGtSGAM5ABgR0K9/view?usp=sharing - проект c# winform

    https://imgur.com/a/VZeRZWu - скрины проекта + код

    Есть две формы .cs. В каждой есть кнопка. В 1.cs есть кнопка button1, в 2.cs button2 При нажатии на button 2 выполняется
    {button2.BackColor = Color.Green; button1.BackColor = button2.BackColor}

    Если же первая строка выполняется и цвет кнопки меняется, вторая - нет

    – Max Feb 24 '24 at 18:08
  • Отредактируйте сам вопрос. И код прямо в вопрос текстом - [edit] – aepot Feb 24 '24 at 18:32
  • 1
    Сделал, спасибо за подсказку – Max Feb 24 '24 at 19:46
  • https://ru.stackoverflow.com/a/835223/220553 – EvgeniyZ Feb 24 '24 at 21:50

1 Answers1

1

Где-то уже был такой же вопрос и ответ на него, потому что проблема тривиальная. Но сходу не нашел, поэтому покажу. Вам стоит поизучать основы ООП, тогда текущая задача станет лёгкой.

Делаем публичный метод, меняющий цвет кнопки в первой форме

public void SetButtonColor(Color color)
{
    button_1.BackColor = color;
}

Передаем ссылку на первую форму в конструктор второй формы

private void btn_switch_Click(object sender, EventArgs e)
{
    loadform(new _2(this));
}

Принимаем ссылку в конструкторе

private Form form1;

public Form1(Form form) { InitializeComponent(); form1 = form; }

Теперь просто можно вызвать тот самый метод

private void button_1_Click(object sender, EventArgs e)
{
    button_2.BackColor = Color.Green;
    form1.SetButtonColor(button_2.BackColor);
}

Готово, если я правильно понял задачу.

Вы не заметили один нюанс, у вас button_1 есть в обеих формах. Разберитесь с этим.

aepot
  • 49,560