2016-03-23 6 views
-5

Ich möchte eine Nachricht anzeigen, nachdem meine Taste 10 Mal gedrückt wurde. Wenn der Benutzer auf die Schaltfläche 10 Mal geklickt hat, dann sollte es eine messagebox erscheinenWie zeige ich Message Box nach ein paar Klicks in C#

Ich habe versucht:

for (int i = 0; i < 11; i++) 
{ 
    MessageBox.Show(i.ToString()); 
} 

Es bringt mir nichts

+0

Ist dies der Code, der aufgerufen wird, wenn die Schaltfläche geklickt wird? – yoozer8

+6

Wo ist Ihre Logik für die 10 Tasten drücken? Welche Methode ist das? – Dispersia

+0

Versuchen Sie, ein Meldungsfeld anzuzeigen oder Text in einem vorhandenen Meldungsfeld erscheinen zu lassen? – Jacobr365

Antwort

2

Wenn der Benutzer auf das geklickt hat Taste 10 mal dann sollte es eine messagebox

erscheinen es ist nicht klar, warum Sie versuchen, eine Schleife zu verwenden dafür. Es gibt nichts, über das in der Beschreibung zu iterieren wäre. Sie erhöhen einfach einen Zähler mit jedem Klick und führen eine Aktion durch, wenn der Zähler einem gegebenen Wert entspricht.

Zuerst müssen Sie die Anzahl der Klicks verfolgen. Eine Klasse-Level-Eigenschaft sollte es tun:

private int NumberOfClicks { get; set; } 

Dann in Ihrem Click-Handler, Sie erhöhen es:

NumberOfClicks++; 

Jedes Mal, es erhöht ist, überprüfen Sie, ob es auf 10 ist noch nicht und zeigt die Meldung:

if (NumberOfClicks == 10) 
    MessageBox.Show("some message"); 

(Man könnte zusätzlich den Zähler in der if Block zurückzusetzen, so dass die Nachricht jedes 10 c gezeigt ist, leckt. Oder prüfen Sie, ob NumberOfClicks % 10 == 0 für den gleichen Effekt gilt. Usw.)

2

Fügen Sie eine Variable hinzu, die den aktuellen clickcount zu Ihrer forms-Klasse enthält. Jedes Mal, wenn Sie auf die Schaltfläche klicken, erhöhen Sie sie. Wenn der Zähler 10 erreicht, zeigen Sie die Meldungsbox und setzen Sie den Zähler zurück.

public partial class MyForm : Form { 
    private int clickcount = 0; 

    public MyForm() 
    { 
     InitializeComponent(); 
     button1.Click += clicked; 
    } 

    public void clicked(object sender, EventArgs e) 
    { 
     if (++clickcount == 10) { 
      MessageBox.Show("hello there!"); 
      clickcount = 0; 
     }   

    } 
} 
2

Angenommen, Sie haben eine Arbeitsform Schaltfläche namens buttonOne und eine Messagebox genannt messagebox

private int clickcount { get; set; } 
private void buttonOne_Click(object sender, EventArgs e) 
{ 
    if(++clickcount == 10) 
     MessageBox.Show("Your message") 
} 
+0

Vielen Dank dafür – justhere123

+0

Eine private Auto-Eigenschaft ist absolut nutzlos, wenn nicht weniger vorteilhaft, wie Sie es nicht zu einem Ref oder out übergeben können. – Dispersia