Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2013, 01:38   #1
mdekalka
Пользователь
 
Регистрация: 18.12.2011
Сообщений: 14
По умолчанию Закрытие формы по таймеру и открытие новой.

Добрый снежный вечер.
Есть две формы:в первой происходит анимация фигур, вторая пустая.
Как сделать чтобы показав свою анимацию первые, например 5 секунд(как дать понять, что через n-секунд надо закрываться?), первая форма закрылась автоматически и открылась вторая?

Код:
 public Form1()
        {
          InitializeComponent();
         }

   private void timer1_Tick(object sender, EventArgs e)
        {
                 Invalidate(); //вызов перерисовки
               }

 protected override void OnPaint(PaintEventArgs e) 
        {
            base.OnPaint(e);

            e.Graphics.SmoothingMode = SmoothingMode.HighQuality; 

            if(startLoading1 == true)
                this.Loading1(e.Graphics);
            
        }

  private void Loading1(Graphics g)
        {
    //рисуем что-то
}
сделал так в 1 форме->2 открывается только при методе Hide() у первой, почему все закрывается, если я хочу не спрятать, а закрыть 1 форму Close() и открыть вторую?
this.Hide();
Form2 myForm2 = new Form2(this);
myForm2.Show();
mdekalka вне форума Ответить с цитированием
Старый 16.01.2013, 03:00   #2
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
По умолчанию

Цитата:
Сообщение от mdekalka Посмотреть сообщение
Добрый снежный вечер.
Есть две формы:в первой происходит анимация фигур, вторая пустая.
Как сделать чтобы показав свою анимацию первые, например 5 секунд(как дать понять, что через n-секунд надо закрываться?), первая форма закрылась автоматически и открылась вторая?

Код:
 public Form1()
        {
          InitializeComponent();
         }

   private void timer1_Tick(object sender, EventArgs e)
        {
                 Invalidate(); //вызов перерисовки
               }

 protected override void OnPaint(PaintEventArgs e) 
        {
            base.OnPaint(e);

            e.Graphics.SmoothingMode = SmoothingMode.HighQuality; 

            if(startLoading1 == true)
                this.Loading1(e.Graphics);
            
        }

  private void Loading1(Graphics g)
        {
    //рисуем что-то
}
сделал так в 1 форме->2 открывается только при методе Hide() у первой, почему все закрывается, если я хочу не спрятать, а закрыть 1 форму Close() и открыть вторую?
this.Hide();
Form2 myForm2 = new Form2(this);
myForm2.Show();
Вопрос понял не до конца, но насчет: "почему все закрывается, если я хочу не спрятать, а закрыть 1 форму Close()" могу сказать следующее: главный поток программы привязывается к первой форме с помощью следующего кода:
Код:
		public static void Main (string[] args)
		{
			Application.Init ();			
			//вот она привязка потока к MainWindow	
			Application.Run (new MainWindow ());
		}
В VS меняешь такое содержимое файла "Program.cs" на:
Код:
		public static void Main (string[] args)
		{
			Application.Init ();
			//форма отдельно
			MainWindow win = new MainWindow ();
			win.Show ();
			//поток отдельно
			Application.Run ();
		}
и все, привязки потока к форме нет и программа не завершится после закрытия MainWindow. Но учти, что теперь ты должен сам заботиться об убийстве потока своей программы. В VS я это делал с помощью обработки события закрытия формы и проверки количества открытых окон
P.S.Сам сейчас использую MonoDevelop/Gtk# и программирую под Linux, поэтому могут быть небольшие отличия
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Mixim вне форума Ответить с цитированием
Старый 16.01.2013, 06:14   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OnDblClick в DBGrid и открытие новой формы haker270 БД в Delphi 12 14.11.2012 20:12
Закрытие модального окна по таймеру Olegzxc JavaScript, Ajax 3 31.07.2012 09:36
2 формы(открытие закрытие) начинающий1 Общие вопросы Delphi 15 15.07.2010 22:54
Открытие/Закрытие CD привода unicode Общие вопросы C/C++ 4 22.07.2009 15:17
Открытие новой формы в VB byte916 Помощь студентам 1 04.03.2008 19:10