Вам нужно запустить событие из одной формы и обработать его в другой форме.
Вам понадобится класс аргументов события для переноса состояния флажка:
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;
}
Я бы посоветовал вам не использовать это для отправки в обоих направлениях без каких-либо изменений.В противном случае вы окажетесь в бесконечном цикле, запускающем событие вперед и назад между двумя формами.Просто используйте его в одном направлении, и все будет в порядке.