c#自动填充组合框中的数据

时间:2013-08-14 07:37:05

标签: c#

我有一个下拉框,只需点击一下按钮就可以自动填充数据库列表。我用以下代码试图实现的是,如果用户选择master数据库,那么它应该从指定的位置自动选择“master.sql”文件。如果用户从列表中选择了其他一些数据库,那么应该从指定位置选择“dbscript.sql”文件。

但是我得到的输出是即使我选择master数据库,组合框也会填充“dbscript.sql”。

有谁可以指出我在这里做错了什么?

C#代码:

string sel = comboBox1.SelectedText.ToString();
if (sel != "master")
{
    DirectoryInfo dinfo = new DirectoryInfo(@"D:\Testpgm");
    FileInfo[] Files = dinfo.GetFiles("dbscript.sql", SearchOption.AllDirectories);
    foreach (FileInfo file in Files)
    {
        comboBox2.Items.Add(file.Name);
    }
}
else
{
    DirectoryInfo dinfo = new DirectoryInfo(@"D:\Testpgm");
    FileInfo[] Files = dinfo.GetFiles("master.sql", SearchOption.AllDirectories);
    foreach (FileInfo file in Files)
    {
        comboBox2.Items.Add(file.Name);
    }
}

更新的问题:

enter image description here 任何评论都会非常感激..

4 个答案:

答案 0 :(得分:0)

这里唯一的原因可能就是你的陈述

if (sel != "master")

总是假的。这意味着sel永远不会等于master。你需要调试这是真的==主?

答案 1 :(得分:0)

尝试调试comboBox1.SelectedText实际上是什么。 我认为它可能包含不同的“主”拼写,也许是大写。

答案 2 :(得分:0)

来自http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedtext.aspx

您可以使用SelectedText属性来检索或更改ComboBox控件中当前选定的文本。但是,您应该知道,由于用户交互,选择可以自动更改。例如,如果在按钮Click事件处理程序中检索SelectedText值,则该值将为空字符串。这是因为当输入焦点从组合框移动到按钮时,将自动清除选择。

当组合框失去焦点时,选择点将移动到文本的开头,并且任何选定的文本都将被取消选中。在这种情况下,获取SelectedText属性将检索空字符串,并设置SelectedText属性会将指定值添加到文本的开头。

答案 3 :(得分:0)

ComboBox.SelectedText Property

  

获取或设置在a的可编辑部分中选择的文本   组合框。

您需要使用的是comboBox1.SelectedItemcomboBox1.Text属性。