Hallo!
Eigenschaften, die durch eine Enumeration einstellbar sind,
können im Dialog an eine Combobox gebunden werden.
Im Demo-Beispiel: SizeMode und RotateFlip
Imports System.Windows.Forms
Imports System.Drawing
Public Class frmViewer
Dim WithEvents cboFlipRotate As New ComboBox _
With {.Parent = Me, .Width = 200}
Dim WithEvents cboSizeMode As New ComboBox _
With {.Parent = Me, .Left = 220, .Width = 200}
Dim WithEvents mnuOpen As New MenuItem With {.Text = "Bilddatei &laden"}
Dim WithEvents mnuSave As New MenuItem _
With {.Text = "Bilddatei &speichern", .Enabled = False}
Dim mnumain As New MainMenu
Dim ofd As New OpenFileDialog With {.Title = mnuOpen.text, _
.Filter = "Bilder|*.bmp;*.jpg;*.gif;*.png", .Multiselect = False}
Dim sfd As New SaveFileDialog With {.Title = mnuSave.text, _
.Filter = "Bilder|*.bmp;*.jpg;*.gif;*.png"}
Dim picBox As New PictureBox _
With {.Parent = Me, .BorderStyle = BorderStyle.Fixed3D}
Private Sub frmViewer_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Me.FormBorderStyle = FormBorderStyle.FixedSingle
Me.Size = New Size(700, 600)
Me.Menu = mnumain
mnumain.MenuItems.Add(mnuOpen) : mnumain.MenuItems.Add(mnuSave)
With picBox
.Top = 40 : .Left = 10
.Width = Me.Width - 20 : .Height = Me.Height - 100
End With
cboFlipRotate.DataSource = [Enum].GetValues(GetType(RotateFlipType))
cboSizeMode.DataSource = [Enum].GetValues(GetType(PictureBoxSizeMode))
End Sub
Private Sub cboFlipRotate_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles cboFlipRotate.SelectedIndexChanged
Dim rf As RotateFlipType = _
CType(cboFlipRotate.SelectedItem, RotateFlipType)
With picBox
If Not .Image Is Nothing Then .Image.RotateFlip(rf) : .Refresh()
End With
End Sub
Private Sub cboSizeMode_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles _
cboSizeMode.SelectedIndexChanged
Dim sm As PictureBoxSizeMode = _
CType(cboSizeMode.SelectedItem, PictureBoxSizeMode)
If sm = PictureBoxSizeMode.AutoSize Then Exit Sub
With picBox
If Not .Image Is Nothing Then .SizeMode = sm : .Refresh()
End With
End Sub
Private Sub mnuOpen_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuOpen.Click
If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
picBox.Load(ofd.FileName)
cboFlipRotate.SelectedIndex = 0
cboSizeMode.SelectedIndex = 0
mnuSave.Enabled = True
End If
End Sub
Private Sub mnuSave_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuSave.Click
If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
picBox.Image.Save(sfd.FileName)
End If
End Sub
End Class |