| 

.NET C# Java Javascript Exception

1
Hallo,

Ich habe folgendes Problem:
Ich möchte das, wenn die Taste "Q" gedrückt wird, Picturebox1 ein bild bekommt.
Wenn die Taste Q wieder gedrückt wird, soll das bild von der Picturebox1 auf die
Picturebox2 übertragen werden.

Bin hierhin gekommen und schaffe es alleine nicht:

If e.KeyCode = Keys.Q Then
PictureBox1.Image = My.Resources.Quas

ElseIf e.KeyCode = Keys.Q And PictureBox1.Image Is My.Resources.Quas Then
PictureBox2.Image = My.Resources.Quas
EndIf


Ich hoffe jemand kann mir helfen, ich komme einfach nicht weiter.

Liebe Grüße,
Vaana
12.09.2012
Vaana 3 3
2 Antworten
1
Indem du den else Zweig anpasst.

If e.KeyCode = Keys.Q And PictureBox1.Image Is Nothing Then
PictureBox1.Image = My.Resources.Quas

ElseIf e.KeyCode = Keys.Q And PictureBox1.Image Is My.Resources.Quas Then
PictureBox2.Image = My.Resources.Quas
PictureBox1.Image = Nothing
EndIf


Wenn du möchtest, dass nach dem zweiten Drücken von Q beide Pictureboxen den gleichen Inhalt haben, dann halt ohne die letzte Zeile im Else-Zweig.
12.09.2012
mschem79 56 1
Hab das genauso gehabt, bei mir wird lediglich Picturebox1 mit einem bild versehen.
Ansonsten passiert nichts.
Vaana 12.09.2012
1
Dann ersetze mal im ElseIf den Teil
PictureBox1.Image Is My.Resources.Quas
durch
(not PictureBox1.Image Is nothing) then
mschem79 12.09.2012
Hat funktioniert! Hab vielen Dank.
Vaana 12.09.2012
Würdest du mir noch erklären, wieso die erste Methode nicht geklappt hat ?
Vaana 12.09.2012
1
Das hängt damit zusammen, wie PictureBox.Image und die Ressource verglichen werden. Wahrscheinlich hätte auch ein Vergleich mit Equal zum Erfolg geführt.
Das Objekt, welches im Image gespeichert ist ist ein sog. Referenztyp. Die Ressource ebenfalls. Beide zeigen (referenzieren) aber nicht zwingend auf die gleichen Daten. Daher schlägt der Vergleich mit Is fehl. In deinem Fall hilft dann ein invertierter Vergleich (not ... is nothing) oder ein equal.
mschem79 13.09.2012
0
Versuch mal für die erste Zeile deines Codes etwas in der Art
If e.KeyCode = Keys.Q And PictureBox1.Image Is Nothing Then

Wenn Du nur auf KeyCode = Q prüfst, ist die Bedingung immer erfüllt wenn Q gedrückt wird. Damit werden die Alternativen nicht mehr geprüft und somit auch nicht ausgeführt.
12.09.2012
phg 1,6k 4
Und wie bekomme ich es hin, wenn ich jetzt die Taste Q nochmal drücke, dass die Picturebox2 auch Q wird und Picturebox1 sich leert ?
Vaana 12.09.2012
Kleiner verschreiber:

...,dass die Picturebox2 auch das Bild bekommt...
Vaana 12.09.2012

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH