Picture Box - PictureBoxSizeMode.CenterImage - Problem

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

    Picture Box - PictureBoxSizeMode.CenterImage - Problem

    Hallo,

    ich bin gerade an einem sehr einfachen Programm das einfach nur die Bilder anzeigen soll.
    Über 4 Radio Buttons soll man jedoch die Eigenschaft "PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage" einstellen können.
    Soweit bin ich schon:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If RadioButton1.Checked = True Then
    3. PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    4. ElseIf
    5. RadioButton2.Checked = True Then
    6. PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage
    7. ElseIf
    8. RadioButton3.Checked = True Then
    9. PictureBox1.SizeMode = PictureBoxSizeMode.Normal
    10. ElseIf
    11. RadioButton4.Checked = True Then
    12. PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
    13. End If
    14. Try
    15. With OpenFileDialog1
    16. Dim Res = .ShowDialog()
    17. If Res = Windows.Forms.DialogResult.Cancel Then
    18. Exit Sub
    19. End If
    20. End With
    21. PictureBox1.Load(OpenFileDialog1.FileName)
    22. Catch ex As Exception
    23. MsgBox("Fehler")
    24. End Try
    25. End Sub
    Was ist daran falsch?

    Edit: 1. Fehler gefunden in Zeile 14: Try Then
    Es unterwellt die Then's in Zeile 5,8 und 11 sowie die Elseif in den Zeilen 4,7 und 10 blau

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „freakyJoker“ ()

    freakyJoker schrieb:

    Was ist daran falsch?

    Nur ein paar Syntaxfehler, sonst eigentlich nichts:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. If RadioButton1.Checked = True Then
    2. PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    3. ElseIf RadioButton2.Checked = True Then
    4. PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage
    5. ElseIf RadioButton3.Checked = True Then
    6. PictureBox1.SizeMode = PictureBoxSizeMode.Normal
    7. ElseIf RadioButton4.Checked = True Then
    8. PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
    9. End If
    10. Try
    11. With OpenFileDialog1
    12. Dim Res = .ShowDialog()
    13. If Res = Windows.Forms.DialogResult.Cancel Then
    14. Exit Sub
    15. End If
    16. End With
    17. PictureBox1.Load(OpenFileDialog1.FileName)
    18. Catch ex As Exception
    19. MsgBox("Fehler")
    20. End Try


    Allerdings würde ich die Property PictureBoxSizeMode nicht wie hier beim Laden eines neuen Images setzen, sondern immer dann wenn sich ein RadioButton ändert (CheckedChanged Event) . Schliesslich macht das auch Sinn für schon geladene Bilder - oder ?
    Danke für deine Antwort,

    Allerdings würde ich die Property PictureBoxSizeMode nicht wie hier beim Laden eines neuen Images setzen, sondern immer dann wenn sich ein RadioButton ändert (CheckedChanged Event) . Schliesslich macht das auch Sinn für schon geladene Bilder - oder ?

    Hmm, ja wäre es, nur wie? 8|

    freakyJoker schrieb:

    Hmm, ja wäre es, nur wie?

    Mach in der Form-Ansicht einen DoppelClick auf einen Radiobutton, dann legt er in Deinem Code automatisch einen Handler für das entsprechende CheckedChange event an und zeigt es auch sofort, so dass Du es abändern kannst.

    Das sollte dann ca. so aussehen:

    VB.NET-Quellcode

    1. Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
    2. PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    3. End Sub
    4. Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
    5. PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage
    6. End Sub
    7. ' für andere Radiobuttons genauso .....


    Ausserdem solltest Du den Radiobuttons sinnvolle Namen geben, z.B. radioPicStretch, radioPicCenter usw. Das macht Deinen Code erheblich lesbarer als die vorgegeben Namen [/i]RadioButton1, RadioButton2.