Faiiziii Awan Ответов: 2

Мой объект не отображается при вызове метода show()


всем привет
я использую кусок кода как под


объект класса form1 в классе не появляется, пожалуйста, помогите, чтобы отобразить его в организме time_elapsed

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

MainWindow_Loaded недействительным(объект отправителя, RoutedEventArgs е)
{

таймер = новый таймер();
таймер.Интервал = 1000;
таймер.Истекло += timer_Elapsed;

таймер.Начать();
}
timer_Elapsed недействительным(объект отправителя, ElapsedEventArgs е)
{
объект класса form1 = новые формы form1();
объект.Показать()

}

BillWoodruff

Создайте экземпляр формы вне вызова Timer_Elapsed.

johannesnestler

опубликуйте свой реальный код - тогда мы увидим дальше -он не компилируется. С такой точностью на работе вы лучше делаете что-то другое, чем программирование...

Philippe Mori

Очевидно, что если форма не отображается (несколько раз), то что-то еще должно быть неправильно в вашем коде...

2 Ответов

Рейтинг:
2

OriginalGriff

Это глупо, даже если ваш код скомпилирован , чего не произойдет. В нем отсутствует точка с запятой, и вы не можете вызвать переменную object по тем же причинам вы не можете его назвать float или string.
Так что есть вероятность, что если вы их исправите, то это сработает - это сработает для меня - и, похоже, не сработает для вас, потому что он не компилируется, поэтому в "запущенной версии" нет этого кода.

    System.Timers.Timer timer = new System.Timers.Timer();
    timer.Interval = 1000;
    timer.Elapsed += timer_Elapsed;
    timer.Start();
    }
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
    Form1 f1 = new Form1();
    f1.Show();
    }
Но это нехорошо - он будет открывать новую форму каждую секунду ... который довольно быстро заполнит весь экран.


Рейтинг:
0

buffedcheesy

попробовать это:

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{

timer = new Timer();
timer.Interval = 1000;
timer.Elapsed += timer_Elapsed;

timer.Start();
}
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
form1 f1 = new form1();
f1.Show();
timer.Stop();
} 


Вы не должны использовать "объект" в качестве имени объекта, потому что объект является зарезервированным типом, и, конечно, вам лучше остановить таймер после создания нового экземпляра form1.

Вы также должны знать, что это не "профессиональный" способ делать что-либо.


Faiiziii Awan

спасибо buffedcheesy
но я уже попробовал этот орех сейчас поработать.
как form1 obj = new form (); создает объект внезапно объект идет убивать.я уже устал сначала останавливать таймер, потом создает объект и т. д. и т. д. Но все ничего не делает

buffedcheesy

С какой средой вы работаете?
Обычно стандартное имя - " Form1 "(верхний регистр), а не" form1", это немного сбивает меня с толку. Порядок команд в обработчике событий в данном случае не имеет значения.

Я пытаюсь следовать за тобой, но не знаю, далеко ли ты.