2017-05-13 2 views
-2

J'utilise la minuterie dans mon code, disons quand la minuterie s'arrête à 0, messagebox m'indique que vous avez expiré et affiche deux boutons "RETRY" et "CANCEL". Guidez-moi avec la fonctionnalité c'est-à-dire lorsque j'appuie sur le bouton "ANNULER" sur la boîte de message, il quitte le formulaire entier de Windows. ci-dessous est la condition if à l'événement timer_tick:MessageBox Accès aux boutons en C#

int duration = 10; 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     //shows message that time is up! 
     duration--; 
     timer_label1.Text = duration.ToString(); 
     if (duration == 0) 
     { 
      timer1.Stop(); 
      MessageBox.Show("You Timed Out", "Oops", MessageBoxButtons.RetryCancel, MessageBoxIcon.Stop); 

     } 
    } 

    private void start_game_button19_Click(object sender, EventArgs e) 
    { 
     timer1.Enabled = true; 
     timer1.Start(); 
    } 

enter image description here

+0

S'il vous plaît poster ce que vous avez essayé jusqu'à présent, afin que nous puissions vous aider .. –

+0

int durée = 10; private void timer1_Tick (expéditeur d'objet, EventArgs e) { // indique que le temps est écoulé! duration--; timer_label1.Text = duration.ToString(); si (durée == 0) { timer1.Stop(); MessageBox.Show ("You Timed Out", "Oops", MessageBoxButtons.RetryCancel, MessageBoxIcon.Stop); }} private void start_game_button19_Click (expéditeur d'objet, EventArgs e) { Timer1.Enabled = true; timer1.Start(); } – AmberYaseen

+1

Vous pouvez modifier votre publication d'origine. Un long code dans la zone de commentaire n'aide pas vraiment. – Anthony

Répondre

0

Pour travailler avec MessageBox et prendre une autre action en fonction du bouton cliqué, il faut affecter le résultat de l'appel Show à une variable . Show renvoie une valeur DialogResult que vous pouvez utiliser pour déterminer le bouton sur lequel vous avez cliqué.

var retryOrCancel = MessageBox.Show(
    text: "You Timed Out", 
    caption: "Oops", 
    buttons: MessageBoxButtons.RetryCancel, 
    icon: MessageBoxIcon.Stop 
); 

switch (retryOrCancel) 
{ 
    case DialogResult.Cancel: 
    this.Close(); 
    break; 
    case DialogResult.Retry: 
    StartGame(); 
    break; 
} 

private void start_game_button19_Click(object sender, EventArgs e) 
{ 
    StartGame(); 
} 

private void StartGame() 
{ 
    timer1.Enabled = true; 
    timer1.Start(); 
} 
+0

cela a résolu le problème, merci beaucoup! :) – AmberYaseen

+0

Content de vous aider. Votez pour cette réponse si vous pensez que cela explique bien les choses. –

0

Vous pouvez faire quelque chose comme ceci ci-dessous le code:

var result = MessageBox.Show(
       "You Timed Out", 
       "Oops", 
       MessageBoxButtons.RetryCancel, 
       MessageBoxIcon.Stop); 

if (result == DialogResult.Cancel) { 
    this.Close(); 
}