我有一个应用程序支持几种不同的可查看项目组合。通过单击其对应的树节点,可以切换每个视图。问题是我不想在我的.settings文件中以单独的布尔值存储每个单独的node.checked布尔值。
所以我目前正在尝试使用位掩码,但是我不知道如何将该类型添加到设置文件编辑器的可选类型中。
如何才能使其成为可选择的保存类型?
答案 0 :(得分:2)
枚举类型是幕后的Int32 - 事实上,枚举类型的变量可以被赋予任何整数值,即使这些值不在原始枚举中。如果在设置中使用了整数类型,则可以将其强制转换为定义的枚举类型以使用它。没有检查整数值是由枚举定义的。
请注意在设置文件中使用位掩码,因为可能难以计算出设置的值。例如,如果您希望将第1位和第3位设置为true,则必须将设置文件中的值设置为“5”,因为这是将第一个和第三个位设置为1的整数。
在代码中,您可以使用bitshift运算符<<
来更轻松地读取值,或者在.NET 4及更高版本中使用Enum.HasFlag
(http://msdn.microsoft.com/en-us/library/system.enum.hasflag.aspx)。
答案 1 :(得分:1)
您只能使用Int32
类型。位掩码是整数(4字节)或其他指定整数类型的非零位集(例如Int16
)
答案 2 :(得分:1)
如果您希望自定义类型在winforms设置中可设置,则必须定义TypeConverter以转换为字符串并返回字符串。