我有一个下拉框,只需点击一下按钮就可以自动填充数据库列表。我用以下代码试图实现的是,如果用户选择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);
}
}
更新的问题:
任何评论都会非常感激..
答案 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.SelectedItem
或comboBox1.Text
属性。