2009-07-17 33 views
9

formun yüklendiği zaman otomatik olarak başlayan bir geri sayım yerine bir zamanlayıcı eklemek istiyorum. Başlangıç ​​zamanı 45 dakika olmalı ve bir kez bittiğinde, yani 0 dakikaya ulaşıldığında, form görüntülenen bir mesaj ile sona ermelidir. Bunu nasıl yapabilirim?Bir Windows Forms uygulamasına zamanlayıcı ekleme

Dil: tercihen C#.

+2

Şimdiye kadar neler yaptınız? –

+0

Şahsen, ev ödevlerinde yardımcı olabiliyorum. Anahtar kelime * yardım *. Öyleyse neden * bize bir çaba göstermek için makul bir girişimde bulunmadan birinin ödevini yapıyoruz? – IAbstract

cevap

32

Biraz daha ayrıntı:

{:

private void Form1_Load(object sender, EventArgs e) 
    { 
     Timer MyTimer = new Timer(); 
     MyTimer.Interval = (45 * 60 * 1000); // 45 mins 
     MyTimer.Tick += new EventHandler(MyTimer_Tick); 
     MyTimer.Start(); 
    } 

    private void MyTimer_Tick(object sender, EventArgs e) 
    { 
     MessageBox.Show("The form will now be closed.", "Time Elapsed"); 
     this.Close(); 
    } 
+0

hey bro thanx çok ... çalıştım .... aslında fesher prog böylece gerçekten nasıl çalıştığını gerçekten açıklardım gerçekten çalışır.Özellikle bu iki satır: MyTimer.Tick + = yeni EventHandler (MyTimer_Tick) ; MyTimer.Start(); ve neden 1000 ?? yani 45 * 60 * 1000 .... ve bir etiketdeki zaman (geri sayım) gösterimini ya da formdaki gibi bir şekilde görüntülemek istiyorum ... thanx – knowledgehunter

+0

MyTimer.Tick + = yeni EventHandler (MyTimer_Tick); Zamanlayıcının, ayarlanan aralık geçtiğinde Tick adlı bir olayı vardır. Bu durumda, tick olayı meydana geldiğinde MyTimer_Tick yöntemini çağırmak istediğimizi söyledik. MyTimer.Interval = (45 * 60 * 1000); Zamanlayıcının aralığı milisaniyedir ve bu nedenle, sadece cevabı çözmek ve değere yapışmak yerine bir hesaplama kullandım. Bence bunu anlamak biraz daha kolay. – Tim

+0

thanx ... aldım ... formda geri sayımı gösteren bt wat? – knowledgehunter

1

Formunuzdaki ana gibi bir şey. Form yükleme olayı oluşturmak için görsel düzenleyicideki formu çift tıklatın.

Timer Clock=new Timer(); 
Clock.Interval=2700000; // not sure if this length of time will work 
Clock.Start(); 
Clock.Tick+=new EventHandler(Timer_Tick); 

Sonra Zamanlayıcı yangınları şey yapmak için bir olay işleyicisi ekleyin.

public void Timer_Tick(object sender,EventArgs eArgs) 
    { 
    if(sender==Clock) 
    { 
     // do something here  
    } 
    } 
+0

thanx ... işe yaradı .... ama geri sayımı formda nasıl görüntüledim? – knowledgehunter

-3

İndir http://download.cnet.com/Free-Desktop-Timer/3000-2350_4-75415517.html

Sonra sadece yani bu uygulamayı açmanız formda ve olay içinde bir düğme veya bir şey eklemek

Process.Start (@ "C: \ Program Dosyaları (x86)) \ Free Desktop Timer \ DesktopTimer ");

}

+2

Bu korkunç bir çözüm ... bir 3. parti Timer, pffft indir. Neden standart Timer kontrolünü kullanmadınız? Bu bileşenin yazarı siz misiniz? –

+0

Yeni başlayan biriyim .. Ama aslında bir çalışma zamanı sırasında zamanlayıcı kontrolünü görüntülemek nasıl mümkün olabilir? üçüncü parti zamanlayıcı gibi ... pls biliyorsa cevap .. –

+0

Özel Sub timer1_Tick (nesne olarak Gönderen, e As EventArgs) Dim farkı olarak Yeni TimeSpan() diff = DateTime.Now.Subtract (startTime) lblTime.Text = fark .Hours & ":" & diff.Minutes.ToString ("00") & ":" & diff.Seconds.ToString ("00") lblTime.Invalidate() End Sub –

İlgili konular