Hallo,
habe leider ewig nicht mehr mit C gearbeitet und weiß eifnach nicht, was ich hier falsch gemacht habe:
public void endpunkte(object sender, MouseEventArgs e) // aufruf beim klicken auf bild
{
if (!klick) // definition und eintrag der koordinaten von punkt 1 nach erstem klick
{
int[][] endpunkte = new int[2][];
endpunkte[0] = new int[] { e.X * 2 - 1, e.Y * 2 - 1 };
klick = true;
}
else if (klick) // eintrag der koordinaten von punkt 2 nach zweitem klick
{
endpunkte[1] = new int[] { e.X * 2 - 1, e.Y * 2 - 1 };
klick = false;
label1.Text = endpunkte[0][0] + endpunkte[0][1] + endpunkte[1][0] + endpunkte[1][1];
}
}
endpunkte[1] geht schon nicht, da endpunkte[][] bis dahin schon wieder weg ist. Wie müsste ich hier korrekt vorgehen?
Danke!
Hallo olik,
du musst die Variable endpunkte
außerhalb des if
-Blocks deklarieren.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Danke!
Dachte ich mir fast, aber dann wird diese beim zweiten Aufruf (zweiter Klick) doch erneut deklariert und "resettet", oder? Es soll ja die erste Zeile erhalten bleiben und nur die zweite ergänzt werden.
Edit:
Aaaah, ich glaube, der Fehler ist, dass die Funktion den gleichen Namen hat...
Edit2:
So klappt es nun:
int[][] endpunkt = new int[2][];
public void endpunkte(object sender, MouseEventArgs e) // aufruf beim klicken auf bild
{
if (!klick) // definition und eintrag der koordinaten von punkt 1 nach erstem klick
{
endpunkt[0] = new int[] { e.X * 2 - 1, e.Y * 2 - 1 };
klick = true;
}
else if (klick) // definition und eintrag der koordinaten von punkt 1 nach erstem klick
{
endpunkt[1] = new int[] { e.X * 2 - 1, e.Y * 2 - 1 };
klick = false;
label1.Text = endpunkt[0][0] + endpunkt[0][1] + endpunkt[1][0] + endpunkt[1][1];
}
}
Danke!