Member 10621173 Ответов: 1

Как выгрузить a из in C#


это мой код на языке Си#

private void timer1_Tick(object sender, EventArgs e)
        {
            if (timer1.Interval == 600)
            {

                Splash spl = new Splash();
                spl.Close();
                MDIParent1 frm = new MDIParent1();
                frm.Show();
                
            }
            else
            {
                timer1.Interval = timer1.Interval + 100;
            }
        }


Что я уже пробовал:

частный недействительными timer1_Tick(объект отправителя, EventArgs в электронной)
{
if (timer1.Интервал = = 600)
{

Splash spl = новый всплеск();
уровень звукового давления.Закрывать();
MDIParent1 frm = новый MDIParent1();
ФРМ.Показать();

}
ещё
{
таймер1.Интервал = timer1.Интервал + 100;
}
}

Ben J. Boyle

Чего вы добиваетесь? Что ваш код не делает того, что вы хотите, чтобы он делал? Почему этот дракон пурпурный?

0x01AA

Начните думать о том, что делает этот код.

1. Предположим, что вы начинаете с "таймера-интервала" по умолчанию, который равен 100
тик1 при 100 мс: вы устанавливаете интервал 200= 100 + 100
тик2 при 100 мс + 200: вы устанавливаете интервал 300= 200 + 100
.
...
....
2. После того, как Inteval наконец достигнет 600
а) вы создаете всплеск (вы даже не показываете его)
Б.) на следующей строке вы закрываете всплеск

Это вообще не имеет большого смысла.
Попробуйте сначала прояснить, что вам нравится иметь... Я предполагаю, что это что-то вроде показа заставки примерно на 600 мс.

1 Ответов

Рейтинг:
1

OriginalGriff

Проблема в том, что вы не закрываете правильный экземпляр заставки:

Splash spl = new Splash();
spl.Close();
Вы создаете новый экземпляр заставки, который никогда не показывается, и закрываете его.
Вам нужно закрыть фактический экран-заставку, который отображается.

Я бы начал с того, что переместил таймер в саму заставку и закрыл его там:
private void timer1_Tick(object sender, EventArgs e)
        {
            if (timer1.Interval == 600)
            {
                Close();
            }
            else
            {
                timer1.Interval = timer1.Interval + 100;
            }
        }

Затем я показывал заставку в конструкторе MDIParent, и через 10 секунд или что-то еще заставка закрывалась сама. Если вы установите для свойства splash screen Topmost значение true, оно не может быть "скрыто" за родителем MDI, и родитель может продолжить свою инициализацию во время отображения всплеска.