myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Visual Basic Problem. (https://mygully.com/showthread.php?t=2830918)

Ravikna 08.02.13 11:17

Visual Basic Problem.
 
Hallo Leute, ich hoffe ich bin hier richtig. Es geht um ein Programm in Visual Basic. Ich habe zwei Bilder und eine Picturebox. Bild 1 ist beim Start schon in der Picturebox, wenn ich auf einen Button drücke erscheint Bild 2. Soweit so gut, nur wie stelle ich es an das nach erneutem Druck auf den Button wieder Bild 1 erscheint? Ich bin echt mit meinem Latein am Ende, und hoffe, das ihr mir helfen könnt. Hier ist mein Code den ich bis jetzt habe:

Public Class Form1

Dim aktuellesBild As Integer = 0




Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Select Case aktuellesBild

Case 0
PictureBox1.Image = My.Resources._2




End Select


aktuellesBild += 1



End Sub

Your_Conscience 08.02.13 12:58

Ich kenne jetzt die Syntax von VB nicht genau, aber man könnte es so machen:
Zitat:

if (PictureBox1.Image = My.Resources._2)
PictureBox1.Image = My.Resources._1
else PictureBox1.Image = My.Resources._2

Ravikna 08.02.13 13:17

"Der =-Operator ist für die Typen "System.Drawing.Image" und "System.Drawing.Bitmap" nicht definiert."

bibaboon80 08.02.13 17:49

Select Case aktuellesBild

Case 0
PictureBox1.Image = My.Resources._2
aktuellesBild = 1
Case 1
PictureBox1.Image = My.Resources._1
aktuellesBild = 0
End Select


Ist das VB6 oder was? += und so sachen funktionieren doch in vb gar nicht oder täusch mich.

Auch das du deine Variable gleich vorbelegst:
Dim aktuellesBild As Integer = 0

das geht so viel ich weiss auh nicht.

Oder programmierst du VB.NET? dann ist es was anderes....

vangelios 02.09.13 02:48

Dim aktuellesBild As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Select Case aktuellesBild
Case 0
PictureBox1.BackgroundImage = My.Resources._1
aktuellesBild = 1
Case 1
PictureBox1.BackgroundImage = My.Resources._0
aktuellesBild = 0
End Select
End Sub

Ein "Problem" ist das allerdings nicht. Wenn doch, sieht es ganz duster aus für die Zukunft.

Sodomie 16.09.13 22:10

Das stellst du mit einer if an

Private Sub [...] Handles Button1.Click (Beim klick vom Button)

if Picturebox = 2
PictureBox1.BackgroundImage = My.Resources._0 (Bild 1)
else
=+1

Bedeuted:
Wenn wir auf Bild 2 sind und Button klicken, dann öffne Bild 1

anderenfalls (else)

+=1 (Das nächste Bild)

AtPeterG 17.09.13 15:05

Das geht viel einfacher:

Code:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Select Case picturebox.image
        Case Picturebox1.Image = My.Resources._1
            PictureBox1.Image = My.Resources._2
        Case else
            PictureBox1.Image = My.Resources._1
        End Select
End Sub

Das geht auch mit einer "if then" Abfrage.
Code:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If Picturebox1.Image = My.Resources._1 then
            PictureBox1.Image = My.Resources._2
        else
            PictureBox1.Image = My.Resources._1
        End if
End Sub

Vorher natürlich die Bilder in die Resouces des Projektes laden.

Sodomie 17.09.13 18:02

lol, was für einfacher

AtPeterG 18.09.13 05:39

Um dich zu beruhigen, deine Antwort ist eindeutiger Quatsch.

NetWebs 18.09.13 17:34

Sorry, er hat aber absolut recht. Daher scheinst du nicht wirklich Ahnung von der Materie zu haben.

AtPeterG 19.09.13 05:39

Bitte erkläre mir das, warum das so sein soll.

AtPeterG 19.09.13 07:45

Nein, sagt mir nichts. Bitte erkläre mir, was das ist. Und warum man das braucht um Bilder in eine Picturebox unter vb.net zu laden. Ich weiß das wirklich nicht.

ProgMaster 19.09.13 16:35

Da du beruflich nichts in der Richtung machst, ist es irrelevant, wie du unter VB.NET programmierst. Daher kannst du deine PictureBox und was auch immer 'dreckig' (so nennt man das im Programmier-Jargon, wenn man z.B. gegen SOLID-Prinzipien verstößt) befüllen.

AtPeterG 20.09.13 05:41

@ProgMaster

Doch noch einer, der nicht nur dumme Sprüche schreibt. Danke für deine Antwort. Ich weiß zwar nicht, wie du darauf kommst, dass ich das nicht Berufliche mache, aber ist schon ok.

Der Ersteller wollte lediglich unter in einer kleinen Windows Form eine Steuerelement mit Bilder füllen, die er scheinbar schon in den Resourcen seines Projektes hatte. Wäre es hier ein Forum für Programmierer, hätte man Ihm schon sagen müssen das er so auf dem Holzweg ist. Da es das nicht ist, ist es vollkommen unbedeutend wie er das Element füllt und die Bilder einliest. Per Assistent, per Drag and Drop, selbst fromfile oder aus einer DB, ist doch OK so. Eine Synchronisation zwischen den Objekten ist doch hier nicht relevant.

Mir ging es darum, Ihn zu zeigen wie er möglichst (für ihn) einfach und einigermaßen sicher zum Ziel kommt. Dazu brauch er nur die Objekte und das Element. Keine Variablen und das was vorher alles vorgeschlagen wurde.

ProgMaster 20.09.13 06:46

Ich dachte mir, wenn du es beruflich machst, dann würdest Du wissen was SOLID ist und Binding.
Das hat auch nichts mit Drag n Drop zu tun sondern eher mit sauberer Architektur.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:38 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.