从 PictureBox 自动更改 SizeMode 属性

Auto change the SizeMode property from a PictureBox

我有一个包含这些词的列表 { AutoSize,Normal,StretchImage,CenterImage,Zoom }

首先,我的用户将从列表中 select 一项,然后我需要将图片框的 属性 SizeMode 更改为他们的 selection。

我可以在不使用 if/switch-case 语句的情况下做一些事情吗?

If (size_mode_list.SelectedText = "AutoSize") Then
    picture_box.SizeMode = PictureBoxSizeMode.AutoSize
ElseIf (size_mode_list.SelectedText = "Normal") Then
    picture_box.SizeMode = PictureBoxSizeMode.Normal
ElseIf (size_mode_list.SelectedText = "StretchImage") Then
    picture_box.SizeMode = PictureBoxSizeMode.StretchImage
ElseIf (size_mode_list.SelectedText = "CenterImage") Then
    picture_box.SizeMode = PictureBoxSizeMode.CenterImage
ElseIf (size_mode_list.SelectedText = "Zoom") Then
    picture_box.SizeMode = PictureBoxSizeMode.Zoom
End If

Can i make something without use of if/switch-case statements

一种方法是用枚举名称填充 CBO:

cbo.Items.AddRange([Enum].GetNames(GetType(PictureBoxSizeMode)))

然后解析结果:

pb.SizeMode = CType([Enum].Parse(GetType(PictureBoxSizeMode), cbo.Text), 
        PictureBoxSizeMode)

使用 .TextSelectedItem.ToString() 并且 cbo 应该是一个 DropDownList 这样用户就不能输入任何东西。

您也可以编写一个小的 来将名称和值存储到列表中,然后使用 ValueMember 属性 设置大小模式,这样您就可以关闭枚举值而不是名称。