C# 我有一个与此代码冲突的问题,它仍然希望删除该值

C# 我有一个与此代码冲突的问题,它仍然希望删除该值,c#,C#,我有一个与此代码冲突的问题,它仍然希望删除值“StateFlags0200”或“StateFlags0300”,即使它在Windows注册表中不存在,但我的逻辑似乎是正确的 enter code here 私有无效复选框1\u CheckedChanged(对象发送方,事件参数e) 您需要这样做: RegistryKey KeyBase = Registry.LocalMachine; RegistryKey KeyPath = KeyBase.OpenSubKey(@"SOFTWARE\Mi

我有一个与此代码冲突的问题,它仍然希望删除值“StateFlags0200”或“StateFlags0300”,即使它在Windows注册表中不存在,但我的逻辑似乎是正确的

enter code here
私有无效复选框1\u CheckedChanged(对象发送方,事件参数e)


您需要这样做:

RegistryKey KeyBase = Registry.LocalMachine;
RegistryKey KeyPath = KeyBase.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders", true);
KeyPath.DeleteValue("StateFlags0100", false);
KeyPath.Close();

DeleteValue的默认行为是在找不到该值时抛出。要改变这一点,存在该方法的第二个版本,该版本接受第二个布尔参数,该参数明确说明如果不存在该值,是否应引发异常。更多信息:。

它可以工作,但当我从radiobutton1更改为另一个时,它会删除初始值。这些是我正在制作的个人资料。在注册表中,它不应该删除其他“状态标志”。简单的解决方法是创建3个选项卡,并在代码中使用相同名称但不相同ID的复选框,然后删除我的单选按钮。还有别的解决办法吗?请原谅我的英语不好。它如何删除“初始值”?我无法从上面的代码看出这是怎么可能的。我不明白。但是,我使用了3倍于我的复选框和另一个不受原则影响的条件。这就形成了很多复选框。但是,我别无选择,因为我的情况很复杂谢谢
RegistryKey KeyBase = Registry.LocalMachine;
RegistryKey KeyPath = KeyBase.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders", true);
KeyPath.DeleteValue("StateFlags0100", false);
KeyPath.Close();