从PictureBox

时间:2015-10-26 17:32:49

标签: vb.net winforms picturebox

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

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

我可以在不使用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

1 个答案:

答案 0 :(得分:3)

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,因此用户无法输入内容。

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