2014-11-23 68 views
0

我已經使用組合框與來自MySql Tabel的項目工作正常。我可以選擇一個項目並保存一個對象,並顯示所選對象。但是,如果用戶想要編輯內容,我無法讓組合框在編輯窗口中顯示所選項目。文本框工作正常,但組合框顯示列表中的第一個,而不是選定的項目。 我的構造函數:Combobox將不會顯示正確的項目

public CreateForm(Letter brev) 
    { 
     InitializeComponent(); 
     this.brev = brev; 
     GetDropDownBoxReady(); 
     saveButton.Visible = false; 
     deleteButton.Visible = false; 
     insertText(brev); 
    }  

    private void GetDropDownBoxReady() 
    { 
     fraByCB.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown; 
     fraByCB.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     fraByCB.AutoCompleteSource = AutoCompleteSource.ListItems; 
     fraOmraadeCB.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown; 
     fraOmraadeCB.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     fraOmraadeCB.AutoCompleteSource = AutoCompleteSource.ListItems; 
    } 

    public void insertText(Letter brev) 
    { 
     // these work fine 
     objekt1textBox.Text = brev.Object1; 
     objekt2TextBox.Text = brev.Object2; 
     diverse2TextBox.Text = brev.Diverse2; 
     portoTakstTextBox.Text = brev.PortoTakst; 
     portoTillægTextBox.Text = brev.PortoTillaeg; 
     portoFraTextBox.Text = brev.PortoFra.ToString("dd-MM-yyyy"); 
     portoTilTextBox.Text = brev.PortoTil.ToString("dd-MM-yyyy"); 
     // these don't 
     fraByCB.SelectedText = brev.FraBy; 

     fraOmraadeCB.SelectedItem = fraOmraadeCB.FindStringExact(brev.FraOmraade); 
    } 

讓我知道如果你需要更多的代碼過於發現問題。

+0

從你的代碼組合框的DataSource上面沒有設置該字符串SelectedItem屬性。所以,因爲沒有項目可供選擇它不能顯示在下拉任何東西。 – Steve 2014-11-23 19:06:04

+0

但是,組合框工作正常,如果我點擊箭頭項目將被顯示。問題是它沒有設置我想顯示的項目。 有沒有其他的代碼你想看? – John120 2014-11-24 08:21:58

回答

0

你說你可以在組合框下拉菜單中看到項目,但是沒有上面顯示的代碼可以填充下拉菜單。然後,可能會使用預定義的字符串(使用WinForms設計器)使用InitializeComponent調用中的字符串填充組合框的Items屬性。

此時誤差在insertText方法:

fraByCB.SelectedIndex = fraByCB.FindStringExact(brev.FraBy); 
fraOmraadeCB.SelectedIndex = fraOmraadeCB.FindStringExact(brev.FraOmraade); 

FindStringExact返回的項目的位置來檢索發現,你可以使用這個值來設定的連擊SelectedIndex財產

所以你的實際代碼包含兩個erros。第一個是關於fraByCB.SelectedText。此方法用於獲取/設置高亮部分或全部組合的文本部分,而不是選擇一個INTEM。第二個錯誤是FindStringExact(整數)的返回值的assignement給想要代替

+0

我用表格和數據綁定來獲得在組合框中的項目。 – John120 2014-11-25 18:20:08