Как получить доступ к флажку в другой форме? - PullRequest
0 голосов
/ 08 сентября 2018

Я только что сделал две формы, и у меня есть два флажка, я хочу, чтобы они копировали друг друга (если флажок checkBox в Form1 установлен, флажок checkBox в Form2) У меня нет кода для этого, но я могу дать вам свое имя Form1 и имя Form2 Форма 1: MainUI Форма 2: Настройки

1 Ответ

0 голосов
/ 08 сентября 2018

Вам нужно запустить событие из одной формы и обработать его в другой форме.

Вам понадобится класс аргументов события для переноса состояния флажка:

public class CheckEventArgs : EventArgs
{
    public bool Checked { get; set; }
}

Затем в форме, которая будет отправлять состояние проверки, вам понадобится событие (предположим, что форма «Настройки» отправит состояние флажка в форму MainUI), поэтому в настройках потребуется это добавление:

public event EventHandler<CheckEventArgs> CheckboxChanged;

И в событии CheckedChanged checkBox вы запустите событие:

public void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    CheckboxChanged?.Invoke(this, new CheckEventArgs() { Checked = checkBox1.Checked });
}

В форме, от которой вы хотите получить результат, вам нужно будет обработать это событие (этот код идет в MainUI):

public Form1()
{
    InitializeComponent();

    Form2 Settings = new Form2();
    Settings.CheckboxChanged += settings_CheckboxChanged;
}

public void settings_CheckboxChanged(object sender, CheckEventArgs e)
{
    checkBox1.Checked = e.Checked;
}

Я бы посоветовал вам не использовать это для отправки в обоих направлениях без каких-либо изменений.В противном случае вы окажетесь в бесконечном цикле, запускающем событие вперед и назад между двумя формами.Просто используйте его в одном направлении, и все будет в порядке.

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