-1

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

但是我得到的输出是即使我选择主数据库,组合框也会填充“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);
    }
}

更新问题:

在此处输入图像描述 任何评论将不胜感激..

4

4 回答 4

0

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

if (sel != "master")

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

于 2013-08-14T07:44:21.853 回答
0

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

于 2013-08-14T07:44:26.703 回答
0

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

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

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

于 2013-08-14T07:45:27.150 回答
0

ComboBox.SelectedText属性:

获取或设置在 ComboBox 的可编辑部分中选择的文本。

可能您需要使用的是comboBox1.SelectedItemorcomboBox1.Text属性。

于 2013-08-14T07:46:53.280 回答