C# 如何使用具有根键的下拉列表中的注册表子键填充列表框?

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

我一直在尝试用下拉列表中的子键值填充一个列表框,其中包含所有根键的名称作为字符串。每次删除默认字段时,都会出现错误“使用未分配的局部变量‘rk’”

如图所示,在添加默认值时,它始终选择默认值,即currentconfig键,并且在调用更改下拉条目时不会更改。我也尝试在默认字段中提供一个异常,但也没有帮助

我做错了什么

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()函数