Привет, я пытаюсь сделать тумблер TopMost вот код: private void bunifuiOSSwitch1_OnValueChange (отправитель объекта, EventArgs e)

private void bunifuiOSSwitch1_OnValueChange(object sender, EventArgs e)
        {
            Main main = new Main();
            if(bunifuiOSSwitch1.Value == true)
            {
                main.TopMost = true;
            }
            else
            {
                main.TopMost = false;
            }
        }

Сначала он работал при переключении на true и работал при переключении на false, но когда я попытался переключить его, это не сработало, после этого я попытался снова изменить код, но это тоже не сработало ... Теперь это не работает ' т даже TopMost.

0
JokeGamer 27 Июн 2020 в 17:10

1 ответ

Лучший ответ

Что вам нужно сделать, так это передать ссылку на Main в форму настроек. Один из способов сделать это - позвонить Show() или ShowDialog():

// ... in Form Main ...
private void button1_Click(object sender, EventArgs e)
{
    Settings settings = new Settings();
    settings.Show(this); // pass in this instance of Main as the "owner" of settings
}

Затем, в настройках, вы можете вернуть свойство .Owner к типу Main и предпринять с ним действия:

// ... in Settings Form ...
private void bunifuiOSSwitch1_OnValueChange(object sender, EventArgs e)
{
    if (this.Owner!=null && this.Owner is Main)
    {
        Main main = (Main)this.Owner;
        main.TopMost = (bunifuiOSSwitch1.Value == true);
    }
}
0
Idle_Mind 27 Июн 2020 в 23:27