B. *_*non 4 c# enums combobox casting selecteditem
我正在使用自定义枚举值填充组合框:
private enum AlignOptions
{
Left,
Center,
Right
}
. . .
comboBoxAlign1.DataSource = Enum.GetNames(typeof(AlignOptions));
Run Code Online (Sandbox Code Playgroud)
当我尝试将所选项目分配给该枚举类型的var时,但是:
AlignOptions alignOption;
. . .
alignOption = (AlignOptions)comboBoxAlign1.SelectedItem;
Run Code Online (Sandbox Code Playgroud)
...它爆炸了:" System.InvalidCastException未处理Message =指定的强制转换无效. "
该项不是AlignOptions类型吗?
Dang,我以为我很聪明.Ginosaji是对的,我不得不改为:
alignOptionStr = comboBoxAlign1.SelectedItem.ToString();
if (alignOptionStr.Equals(AlignOptions.Center.ToString()))
{
lblBarcode.TextAlign = ContentAlignment.MiddleCenter;
}
else if (alignOptionStr.Equals(AlignOptions.Left.ToString()))
{
. . .
Run Code Online (Sandbox Code Playgroud)
这是一个无效的强制转换,因为你没有枚举,你有枚举的字符串名称表示.要恢复该枚举,您需要解析它.
alignOption = (AlignOptions)Enum.Parse(typeof(AlignOptions), (string)comboBoxAlign1.SelectedItem);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
632 次 |
| 最近记录: |