VisualBasic Lernprogramm 1 - Erstellen eines Bildanzeigeprogramms

HelloSpencer

Ensign
Registriert
März 2011
Beiträge
137
Hallo,
ich habe mich nun endlich dazu überwunden mal mit dem Programmieren an zu fangen . Dementsprechend bin ich ein blutiger Anfänger.
Ich sitze nun zwar seit ca. 14 Jahren vor dem Rechner , jedoch habe ich mich bis vor kurzem nie wirklich an das Programmieren heran getraut. Programmieren kann ich nur etwas S7 .

Nun habe ich mir VisualBasic rausgesucht , da es recht einfach sein soll.
Habe auch gleich mal das erste TuT durchgemacht , dieses kleine Bildanzeigeprogramm.

Das Programm funktioniert bis auf die Sache mit der Checkbox.
Die Größe des Bildes passt sich automatisch an , wenn man die Rahmengröße verändert.
Klickt man jedoch einmal auf "Stretch" , rastet das Bild links oben ein. Es lässt sich auch wieder löschen , jedoch ist die "Rahmen automatisch anpass Funktion nicht mehr gegeben.

Hier der Code :

Public Class Form1

Private Sub Form1_Load() Handles MyBase.Load

End Sub

Private Sub TableLayoutPanel1_Paint() Handles TableLayoutPanel1.Paint

End Sub


Private Sub closeButton_Click() Handles closeButton.Click
' Programm schließen
Close()

End Sub

Private Sub clearButton_Click() Handles clearButton.Click
'Box "leeren"
PictureBox1.Image = Nothing
End Sub

Private Sub Button1_Click() Handles showButton.Click
'Zeigt das Öffnenfenster, Wenn Ok geklickt wird , läd er das Bild das der User ausgewählt hat

If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.Load(OpenFileDialog1.FileName)
End If

End Sub

Private Sub backgroundButton_Click() Handles backgroundButton.Click
' ändert die Hintergrundfarbe
If ColorDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.BackColor = ColorDialog1.Color



End If
End Sub

Private Sub CheckBox1_CheckedChanged() Handles CheckBox1.CheckedChanged
' If the user selects the Stretch check box, change
' the PictureBox's SizeMode property to "Stretch". If the user
' clears the check box, change it to "Normal".

If PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage Then
Else
PictureBox1.SizeMode = PictureBoxSizeMode.Normal
End If
End Sub

Private Sub Process1_Exited(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub
End Class
 
ich kenne mich eher mit visual c# aus, aber für mich sieht es stark nach "vergessenem code" aus:
Code:
If PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage Then
Else

Hinter dem Then müsste doch noch etwas kommen oder?

Code:
If PictureBox1.SizeMode = PictureBoxSizeMode.StrechImage Then PictureBox1.SizeMode = PictureBoxSizeMode.Normal
Else PictureBox1.SizeMode = PictureBoxSizeMode.StrechImage

Wenn man den status der checkbox also ändert, wird geprüft, ob der aktuelle sizemode normal oder strech ist. Und dann wird jeweils der andere modus genommen. Ist es also StrechImage, wird er auf normal gesetzt, in jedem anderen fall wird er auf StrechImage gestellt.

Wenn ich persönlich einen Tipp geben darf:
C# scheint mir einfacher von der syntax zu sein. Ich denke mal du verwendest auch VisualStudio (express), wenn ja, empfehle ich mal das Galileo Computing Visual C# openbook zu ergoogeln (Viel theorie, keine Bilder, aber sehr genau und für mich ein sehr gutes Nachschlagewerk).

MfG
Damon
 
Hallo und Danke für deine Antwort.

Stretchen tut er jetzt das Bild, jedoch wenn man den Haken abwählt, rastet das Bild links oben ein . Wenn man das Bild löscht und ein neues reinlädt ist die Autoanpassenfunktion wieder weg und es hängt wieder oben links fest.

Den Code so wie du Ihn geschrieben hast wird leider nicht akzeptiert , da er eine "end of" Anweisung erwartet.

___________________________________________________________________

Ja, ich verwende Visual Studio express 2010. Also vom lesen her , hörte ich oft das Basic zum Einsteigen eine gute Sprache sei. Da ich jetzt mit Basic angefangen habe , möchte ich es auch durchziehen.

Ich denke das wenn man mal Basic kann ( was wahrscheinlich ewig dauern wird) fällt einem c# auch nicht mehr so schwer.

Ein Buch werde ich mir so oder so noch besorgen müssen.
 
Es wäre besser wenn du die Checkbox.Checked Eigenschaft benutzt um zu entscheiden welcher SizeMode angewendet wird.

Also so:
Code:
If CheckBox1.Checked Then
    PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Else
    PictureBox1.SizeMode = PictureBoxSizeMode.Normal
End If

So wie du das im Moment machst könntest du dir die Checkbox auch gleich sparen und durch einen Button ersetzen.

Edit:
Und pack doch deinen Code bitte das nächste mal in Code Tags, dann ist er besser lesbar ;)
 
Zuletzt bearbeitet:
Habs gerade so gemacht wie es Grantig gesagt hat.
Erst zeigt er das Bild verkleinert , mittig ausgerichtet im Rahmen an . Wenn man die Checkbox setzt , dann zieht er das Bild auf den kompletten Rahmen . Soweit so gut. Wenn jetzt jedoch der Haken wieder entfernt wird, dann ist das Bild in der Orginalgröße , sprich ein 1600x1050 passt nicht mehr in den Rahmen . Bei einem neu reinladen des Bildes , setzt er es immer wieder in Orginalgröße und nicht so wie in Schritt 1.

Grungstellung



Haken setzen , soweit sogut




Haken entfernen

 
Zuletzt bearbeitet:
Vielen Dank, da lag der Fehler :) .

Ich sehe schon , dass noch ein langer steiniger Weg vor mir liegt.
Der Link hat übrigens einiges "anschaulicher" gemacht.
 
Zurück
Oben