2016-07-02 106 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()放在表單創建中。刪除單獨的命令後,可以按預期選擇項目。

謝謝你的幫助和建議!