2016-05-16 2 views
1

У меня проблема: я создал новую форму с фоном img и все, что мне нужно, и ее работу, как я и хотел, но мне также нужно автоматически закрыть ее через 5 или 10 секунд.C# FORM с изображением и авто закрытием

Я искал в google весь день ... но никакого учебника было хорошо. Я использую Visual Studio 2013.

Можете ли вы, ребята, помочь мне, пожалуйста ... Я отчаянно сейчас ... его почти 10 часов с тех пор, как я пытаюсь. Ты моя последняя надежда. Спасибо

this.close() не сделал этого, или я сделал это неправильно, но я сомневаюсь в этом. Application.Exit неудачу таймеры дают ошибки ...

//form 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Cerum_HS 
{ 
    public partial class CERUM_HS : Form 
    { 
     public CERUM_HS() 
     { 
      InitializeComponent(); 
      Rectangle r = Screen.PrimaryScreen.WorkingArea; 
      this.StartPosition = FormStartPosition.Manual; 
      this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - this.Width, Screen.PrimaryScreen.WorkingArea.Height - this.Height); 
     } 
    } 
} 


//main. 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Timers; 
//using System.Windows.Forms; 

namespace Cerum_HS 
{ 
    static class Program 
    { 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 


     private static System.Timers.Timer aTimer; 

     [STAThread] 
     static void Main() 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new CERUM_HS()); 

      aTimer = new System.Timers.Timer(); 
      aTimer.Interval = 10; 

      aTimer = new System.Timers.Timer(10); 

      aTimer.Elapsed += OnTimedEvent; 

      aTimer.AutoReset = false; 

      aTimer.Enabled = true; 
     } 

     private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e) 
     { 
      //Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime); 
      Application.Exit(); 
      //this.close(); 
     } 
    } 
} 
+0

Что случилось? Где вы это назвали? Какие ошибки вы получили? – SLaks

+0

Я назвал функцию из обоих файлов. Иногда это dosent дает ошибку, но приложение dosent закрывается. Я отправлю код прямо сейчас. –

+0

где ваш вызов 'this.Close()'? Вы не используете таймер? вероятно, работает в отдельном потоке? –

ответ

1

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

public partial class CERUM_HS : 
{ 
    // here is the timer for the automatic closing 
    private static System.Timers.Timer aTimer; 

    public CERUM_HS() 
    { 
     InitializeComponent(); 
     Rectangle r = Screen.PrimaryScreen.WorkingArea; 
     this.StartPosition = FormStartPosition.Manual; 
     this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - this.Width, Screen.PrimaryScreen.WorkingArea.Height - this.Height); 
    } 

    private void Form_Load(object sender, System.EventArgs e) 
    { 
     // start here the timer when the form is loaded 
     aTimer = new System.Timers.Timer(); 
     aTimer.Interval = 10; 

     aTimer = new System.Timers.Timer(10); 

     aTimer.Elapsed += OnTimedEvent; 

     aTimer.AutoReset = false; 

     aTimer.Enabled = true; 
    } 

    private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e) 
    { 
     // Close the Application when this event is fired 
     Application.Exit(); 
    } 

} 

Богдан, пожалуйста, прокомментируйте, если эта реализация соответствует тому, как это сработало для вас в конце.

+0

well this.Close(); заменит ошибку на Application.Exit(); –

+0

хорошо, изменен! хорошая командная работа. –

1

Я бы поставил PictureBox и таймер на вашей форме (установлен в 5000 мс), нажмите на событие Tick, и использовать этот код:

namespace Image 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      // set picture box to image of interest 
      // size and position form appropriately 
     } 

     private void timer1_Tick(object sender, EventArgs e) 
     { 
      timer1.Enabled = false; 
      this.Close(); 
     } 
    } 
} 
Смежные вопросы