C# 如何使用具有根键的下拉列表中的注册表子键填充列表框?
我一直在尝试用下拉列表中的子键值填充一个列表框,其中包含所有根键的名称作为字符串。每次删除默认字段时,都会出现错误“使用未分配的局部变量‘rk’” 如图所示,在添加默认值时,它始终选择默认值,即currentconfig键,并且在调用更改下拉条目时不会更改。我也尝试在默认字段中提供一个异常,但也没有帮助 我做错了什么C# 如何使用具有根键的下拉列表中的注册表子键填充列表框?,c#,drop-down-menu,listbox,registry,switch-statement,C#,Drop Down Menu,Listbox,Registry,Switch Statement,我一直在尝试用下拉列表中的子键值填充一个列表框,其中包含所有根键的名称作为字符串。每次删除默认字段时,都会出现错误“使用未分配的局部变量‘rk’” 如图所示,在添加默认值时,它始终选择默认值,即currentconfig键,并且在调用更改下拉条目时不会更改。我也尝试在默认字段中提供一个异常,但也没有帮助 我做错了什么 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { stri
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string x = comboBox1.SelectedText;
RegistryKey rk;
switch(x)
{
case "Classes Root":
rk = Registry.ClassesRoot;
break;
case "Current User":
rk = Registry.CurrentUser;
break;
case "Local Machine":
rk = Registry.LocalMachine;
break;
case "Users":
rk = Registry.Users;
break;
case "Current Config":
rk = Registry.CurrentConfig;
break;
default:
rk = Registry.CurrentConfig;
break;
}
String[] names = rk.GetSubKeyNames();
listBox1.DataSource = names;
}我怀疑
comboBox1.SelectedText
不是您期望的值(请尝试调试它以查看该值)。或者字符串比较是区分大小写的,您确定大小写正确吗?谢谢,这就解决了默认值的问题。但是,在更改下拉列表的输入时,列表框的内容仍然不会得到更新。还有什么吗?我有正确的大小写,并且得到了正确的值,但这听起来非常愚蠢,我不确定在哪里调用它,而且我似乎找不到控件的.databind()函数