Как изменить цвет кнопки в оконных формах C# в разных частях программы?

Как можно сделать так, чтобы при нажатии на кнопку в одном файле изменялся цвет кнопки в другом файле, если оба файлы находятся в одном проекте?
  • 24 февраля 2024 г. 15:58
Ответы на вопрос 2
Для изменения цвета кнопки в оконных формах C# можно использовать свойство `BackColor` кнопки. Например, для изменения цвета кнопки на красный можно использовать следующий код:

```csharp
button1.BackColor = Color.Red;
```

Чтобы изменить цвет кнопки в одном файле при нажатии на кнопку в другом файле, можно использовать событие `Click` кнопки. В файле, где находится кнопка, пишем следующий код:

```csharp
private void button1_Click(object sender, EventArgs e)
{
    // Доступ к другой форме
    Form2 form2 = new Form2();
    form2.ChangeButtonColor();
}
```

В файле Form2 создаем метод `ChangeButtonColor()`, который будет менять цвет кнопки:

```csharp
public void ChangeButtonColor()
{
    button1.BackColor = Color.Blue;
}
```

Таким образом, при нажатии на кнопку в одном файле будет меняться цвет кнопки в другом файле.
Так и говори, как из одной формы обращаться к контролам другой (утт форма - это окно, в твоем вопросе это 'файл' Tema1.cs и t1q1.cs). 

Тебе нужно передать ссылку на форму, в которой что то хочешь изменить на форму, которая хочет изменить. Сделать это можно либо в тот момент, когда вторая форма создается, либо (если экземпляр у формы один) разместить эту ссылку как статичный мембер какого либо класса (пусть и самой формы) в которую конструктор будет иницилизировать эту ссылку, типа так
public static tema1_form;
...
// конструктор Tema1
Tema1()
{
...
Tema1::tema1_form=this;
...
}

// в другом файле
Tema1::tema1_form.button1.BackColor=Color.LightBlue;
формально способов тьма, тебе тут могут еще накидать, а то народ 'почему то' не любит в конкретных задачах такие простые способы.
Похожие вопросы