Как я могу получить цвет фона кнопки и отправить его в другую форму? - PullRequest
0 голосов
/ 03 мая 2018

У меня есть проект с 2 формами, первая форма пуста. Вторая форма имеет 5 кнопок.

Когда я нажимаю кнопку, открывается диалоговое окно цвета. Я выбираю цвет, и цвет фона кнопки меняется. Например, если идентификатор цвета button1 равен Green, цвет фона form1 должен быть зеленым. Не мгновенно, но когда я нажимаю кнопку Сохранить . Мне нужно получить цвет фона кнопки в переменную. Как я могу это сделать?

private void btnKAMU_Click(object sender, EventArgs e)
{
    colorDialog1.ShowDialog();
    btnKAMU.BackColor = colorDialog1.Color;
}

1 Ответ

0 голосов
/ 03 мая 2018

Вы можете передать ссылку от Form1 до Form2 с настройкой Form2 Owner, с пользовательским свойством или с помощью конструктора Form2.

Когда в Form1 создается экземпляр Form2:

Использование свойства Owner :
(Form2 Owner устанавливается, когда вы создаете экземпляр формы следующим образом:
form2.Show(this);. this ссылка Form2 Владелец - Form1 здесь).

Form2 form2 = new Form2();
form2.Show(this);
//form2.ShowDialog(this);

В Form2 установите свойство Owner BackColor:

private void btnSAVE_Click(object sender, EventArgs e)
{
    this.Owner.BackColor = btnKAMU.BackColor;
}


Использование пользовательского свойства :
Form2 form2 = new Form2();
form2.Form1Reference = this;
form2.Show();
//form2.ShowDialog();

В Form2, используя значение свойства:

public Form Form1Reference { get; set; }

private void btnSAVE_Click(object sender, EventArgs e)
{
    this.Form1Reference.BackColor = btnKAMU.BackColor;
}


Установка задания Form1 в Form2 конструкторе :
Form2 form2 = new Form2(this);
form2.Show();
//form2.ShowDialog();

Со значением свойства, как и раньше:

private Form Form1Reference { get; set; }

public Form2(Form Form1Instance)
{
    this.Form1Reference = Form1Instance;
    InitializeComponent();
}

private void btnSAVE_Click(object sender, EventArgs e)
{
    this.Form1Reference.BackColor = btnKAMU.BackColor;
}

Или присвоить ссылку Form1 частному полю:

private Form Form1Reference;

public Form2(Form Form1Instance)
{
    this.Form1Reference = Form1Instance;
    InitializeComponent();
}

private void btnSAVE_Click(object sender, EventArgs e)
{
    this.Form1Reference.BackColor = btnKAMU.BackColor;
}

В зависимости от вашего контекста может потребоваться присвоить выбранный цвет частному полю и использовать его значение для изменения Form1.BackColor

private Color Form1BackColor;

private void btnKAMU_Click(object sender, EventArgs e)
{
    colorDialog1.ShowDialog();
    btnKAMU.BackColor = colorDialog1.Color;
    this.Form1BackColor = btnKAMU.BackColor;
}

При необходимости измените предыдущий код, используя это значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...