我目前将复选框的真/假状态存储在注册表中,以便下次加载表单时重置。
当加载表单时,我会获取该值并设置复选框,如下所示。
string value = (string)Registry.GetValue(@"HKEY_CURRENT_USER\Software\CompanyName\AddressLoad", "SpaceBetween1", null);
if (value != null)
{
if (value == "True")
{
checkBox1.Checked = true;
} Else {
checkBox1.Checked = false;
}
}
这个可以用,但我觉得可能有更好的方法。
我试过这样:
checkBox1.Checked = (Boolean)Registry.GetValue(@"HKEY_CURRENT_USER\Software\CompanyName\AddressLoad", "SpaceBetween1", null);
但是它会报错"Specified cast is not valid."
。
该值在注册表中以REG_SZ的形式存储。不确定是否引起了问题。
我已经搜索了如何解决这个问题,但没有找到过这种情况。
有更好的方法将字符串值转换为布尔值并将其分配给复选框吗?
bool.Parse
但我认为你会得到相同的错误。虽然我不确定。 - Joshua Bakker