2016-07-02 20 views
-1

我正在尝试拉入人员计算机上的打印机列表,并为该人员提供选择打印机的能力。我正在使用组合框来显示已安装打印机的列表(但已尝试多个其他控件)。组合框SelectedIndex始终返回-1

我已经在试图解决这个问题放在这个代码在几个方面:

private void PrintForm_Load(object sender, EventArgs e) 
{ 
    foreach (string my_installed_printers in PrinterSettings.InstalledPrinters) 
    { 
      printer_list.Items.Add(my_installed_printers); 
    } 
} 

这里是我的检测指标变化代码:

private void printer_list_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    Console.WriteLine("SelectedIndex: " + printer_list.SelectedIndex); 
    Console.WriteLine("SelectedItem: " + printer_list.SelectedItem); 
    Console.WriteLine("SelectedValue: " + printer_list.SelectedValue); 
    Console.Write("Items: "); 
    foreach (string my_item in printer_list.Items) 
    { 
     Console.Write(my_item + ", "); 
    } 
    Console.WriteLine(); 
} 

它总是返回:

SelectedIndex:-1 SelectedItem:SelectedValue:Items:

奇怪的是我仍然可以看到ComboBox中的所有项目,但我似乎无法在代码中引用它们。该程序不认为它们存在。我对C#还是很新的,所以我非常感谢帮助。

+0

试过这段代码和问题没有转载。可能还有别的东西在这里工作。查看您的ComboBox上修改的属性 – Steve

+0

我已经从头开始删除并创建了多次组合框,而不更改任何属性并仅使用上面提到的代码。仍然有同样的问题。 :( – Xyletic

+0

您可以发布您将项目添加到组合框的位置吗?也许问题在那里。 –

回答

0

所以我想通了......就像我说的我还在学习。

我已经手动将InitializeComponent()放在表单创建中。删除单独的命令后,可以按预期选择项目。

谢谢你的帮助和建议!