2016-07-03 9 views
0

Ich möchte zwischen den Formen mit einem IR-Sensor wechseln können.
Ich habe eine Kantenvariable erstellt, die die erkannten Kanten speichert, wenn Sie Ihre Hand darüber bewegen.
Also, indem ich meine Hände über den Sensor bewegen, sollte ich in der Lage sein, zwischen den Formen hin und her zu gehen.
Aber nach dem zweiten Swipe bekomme ich nur Tonnen von Fehlern. Wie wechsle ich zwischen 2 Fenstern Formen hin und her

Dies ist der Teil des Codes, der nicht funktioniert:

static void g_detected(object sender,PinStatusEventArgs e) 
    { 
     edges++; 
     switch(edges) 
     { 
      case 1: 
       break; 
      case 2: 
       edges = 0; 
       if (weatherView.Visible) 
       { 
        weatherView.Visible = false; 
        stockView.Visible = true; 
       } 
       else if (!weatherView.Visible) 
       { 
        weatherView.Visible = true; 
        stockView.Visible = false; 
       } 
       break; 
     } 
    } 
+0

Ihr 'Fall default:' fehlt. Nach der zweiten Iteration gibt es keinen Fall, den Schalter zu fangen – lokusking

+1

Was ist "Tonnen von Fehlern"? Sie können den Fehler dort finden ... –

Antwort

0

Ein besserer Ansatz wäre sein Loswerden die erhöhte Variable zu überprüfen. Stattdessen können wir mod.

static void g_detected(object sender, PinStatusEventArgs e) { 
 
    edges += 1; 
 
    switch (edges % 2) { 
 
    case 1: 
 
     break; 
 
    case 0: 
 
     if (weatherView.Visible) { 
 
     weatherView.Visible = false; 
 
     stockView.Visible = true; 
 
     } else if (!weatherView.Visible) { 
 
     weatherView.Visible = true; 
 
     stockView.Visible = false; 
 
     } 
 
     break; 
 
    default: 
 
     //Will never hit, just to handle general coding conventions. 
 
     break; 
 
    } 
 
}