【发布时间】:2021-12-27 16:51:17
【问题描述】:
我正在尝试通过组合框在 My.Settings 中存储和检索 ContentAlignment 枚举。我已经在项目设置中设置了这个类型。我正在使用相关 Enum 值填充设置表单上的组合框:
With ControlAnchorCB
.Items.AddRange([Enum].GetNames(GetType(ContentAlignment)))
End With
然后我尝试将组合框设置为 My.Settings 中的组合框:
ControlAnchorCB.SelectedItem = My.Settings.ConnectorControlAnchor
但没有显示值。我还尝试将选定的组合框值保存回 My.Settings :
My.Settings.ConnectorControlAnchor = ControlAnchorCB.SelectedItem
但是,这会导致异常:“System.InvalidCastException: '从字符串“MiddleCenter”到类型“Integer”的转换无效。'”
更新:另一个限制是我在 Framework 3.5(必须是这个版本)和 vb.net 中编码。因此,Enum.TryParse 不可用。
我怎样才能做到这一点?
【问题讨论】:
-
查看 Enum.TryParse
-
保存枚举时,将其转换为 int 或在枚举上调用
.ToString()。当您从设置中恢复它时,获取字符串或 int 值,并使用Enum.TryParse或将 int 转换回枚举。设置一个断点,看看它是否有效... -
谢谢两位。我忘了提到我必须在 Framework 3.5 和 vb.net 中执行此操作。因此, Enum.TryParse 不可用。 :(
标签: .net enums my.settings