0

На первой форме при выборе определённой радиокнопки по нажатию на кнопку открывается вторая форма на некоторое время:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm2 = new Form2();
        frm2.ShowDialog();
    }
}

Код второй формы:

public partial class Form2 : Form
    {
        Form1 form1 = new Form1();
    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        if (form1.radioButton1.Checked == true)
        {
            // 1000 - 1сек. время, через которое запустится таймер и закроет форму
            timer1.Interval = 5000;
            // через 5 сек форма закроется и появиться главная. не забиваете, что мы вызвали дочернюю форму и через 5 сек её закрыли
            timer1.Enabled = true;
        }

        if (form1.radioButton2.Checked == true)
        {
            // 1000 - 1сек. время, через которое запустится таймер и закроет форму
            timer1.Interval = 10000;
            // через 5 сек форма закроется и появиться главная. не забиваете, что мы вызвали дочернюю форму и через 5 сек её закрыли
            timer1.Enabled = true;
        }
    }

    private void timer1_Tick_1(object sender, EventArgs e)
    {
        timer1.Enabled = false;
        this.Close();
    }
}

Не срабатывает таймер вообще, если использовать радиокнопки. Работает только если оставить так:

private void Form2_Load(object sender, EventArgs e)
        {
            // 1000 - 1сек. время, через которое запустится таймер и закроет форму
            timer1.Interval = 5000;
            // через 5 сек форма закроется и появиться главная. не забиваете, что мы вызвали дочернюю форму и через 5 сек её закрыли
            timer1.Enabled = true;
     }

Вот код радиокнопок из Дизайнера:

// 
            // radioButton1
            // 
            this.radioButton1.AutoSize = true;
            this.radioButton1.Location = new System.Drawing.Point(358, 266);
            this.radioButton1.Name = "radioButton1";
            this.radioButton1.Size = new System.Drawing.Size(85, 17);
            this.radioButton1.TabIndex = 1;
            this.radioButton1.TabStop = true;
            this.radioButton1.Text = "radioButton1";
            this.radioButton1.UseVisualStyleBackColor = true;
            // 
            // radioButton2
            // 
            this.radioButton2.AutoSize = true;
            this.radioButton2.Location = new System.Drawing.Point(571, 266);
            this.radioButton2.Name = "radioButton2";
            this.radioButton2.Size = new System.Drawing.Size(85, 17);
            this.radioButton2.TabIndex = 2;
            this.radioButton2.TabStop = true;
            this.radioButton2.Text = "radioButton2";
            this.radioButton2.UseVisualStyleBackColor = true;
  • 1
    Form1 form1 = new Form1();... Ну ведь пишете new, то есть новый... Также к чему все эти таймеры? Если надо закрыть форму спустя N сек, то await Task.Delay(5000); Close(); будет достаточно. – EvgeniyZ Apr 12 '21 at 19:33
  • @EvgeniyZ Попробовал Ваш вариант, не помог. Так же ничего не происходит. – Ярослав Овчар Apr 12 '21 at 19:38
  • 1
    Что не происходит? Я вам сказал Form1 form1 = new Form1();, вы делаете НОВУЮ форму, а не используете старую, а значит все ваши проверки radioButton как минимум бессмысленны. – EvgeniyZ Apr 12 '21 at 19:41
  • @EvgeniyZ Ну хорошо, а как мне во второй форме проверить, какую радиокнопку выбрал пользователь? – Ярослав Овчар Apr 12 '21 at 19:42
  • 2
    https://ru.stackoverflow.com/a/835223/220553 – EvgeniyZ Apr 12 '21 at 19:43
  • @EvgeniyZ Я сделал так: вторая форма унаследуется от первой. Тогда по нажатию на кнопку выскакивает вторая форма с точно такими же элементами и всё так же не закрывается. – Ярослав Овчар Apr 12 '21 at 19:50
  • унаследуется от первой, эм, что...? Вам тут нужно конструктор переопределить, куда вы ссылку на первую форму передадите, а не использовать "наследование". – EvgeniyZ Apr 12 '21 at 19:52
  • 2
    @EvgeniyZ Ооооо, всё получилось, большое Вам спасибо, Евгений. Извините за глупость мою! – Ярослав Овчар Apr 12 '21 at 19:58

0 Answers0