@HJHJ17

Как реализовать смену цвета кнопки в разных файлах (c# winforms)?

У меня возникла следующая проблема

у меня есть Tema1.cs в которой находится кнопка "T1Q1MN1" также у меня есть t1q1.cs

В t1q1.cs находится кнопка t1q1v1 При нажатии на на кнопку t1q1v1. меняется ее цвет на зеленый. В чем суть проблемы: В Tema1.cs находится кнопка "T1Q1MN1", которая должна менять свой цвет при нажатии кнопки t1q1v1 в t1q1.cs. Цвет (кнопки T1Q1MN1 в Tema.cs) должен совпадать с тем, в который окрасилась кнопка на которую нажали (t1q1v1). Но этого не происходит, потому что t1q1.cs и Tema1.cs разные файлы в одном проекте. Не понимаю как можно это реализовать

Буду очень благодарен за ответ
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
@rPman
Так и говори, как из одной формы обращаться к контролам другой (утт форма - это окно, в твоем вопросе это 'файл' Tema1.cs и t1q1.cs).

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

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы