2013-05-31 57 views
0

當我雙擊DataGridViewRow時,打開MDI子項。在MDI子項中顯示了所選行的值。其中一個值顯示在組合框中。當我打開第一個MDI小孩一切順利,組合框顯示正確的值(正確的控制檯)。打開相同MDI子項時,組合框值發生變化

但是,當我打開一個類似的第二個MDI子項從DataGridView中選擇另一行時,第一個MDI子項中的組合框值更改爲必須在第二個MDI子項中顯示的值。第一個MDI子窗體中的所有其他textboxvalue仍然正確顯示。

有沒有人有這個問題的解決方案?

MDI父窗體

private void dataGridViewGames_DoubleClick(object sender, EventArgs e) 
    { 
     FormGame formGame = new FormGame(); 
     formGame.MdiParent = this.MdiParent; 
     formGame.Name = dataGridViewGames.SelectedRows[0].Index.ToString(); 
     formGame.Rij = dataGridViewGames.SelectedRows[0].Index; 
     formGame.Consoles = consoles; 
     formGame.Games = games; 
     formGame.Show(); 
     formGame.LeesGame(); 
    } 

MDI子窗體

private void FormGame_Load(object sender, EventArgs e) 
    { 
     comboBoxConsole.DataSource = consoles; 
     comboBoxConsole.DisplayMember = "Naam"; 
     comboBoxConsole.ValueMember = "Id"; 
    } 

    public void LeesGame() 
    { 
     DBGames.GameRow gameRij = (DBGames.GameRow)games.Rows[rij]; 
     this.Text = "Game - " + gameRij.Naam; 
     textBoxNaam.Text = gameRij.Naam; 
     textBoxPrijs.Text = gameRij.Prijs.ToString(); 
     textBoxAfbeelding.Text = gameRij.Afbeelding; 
     comboBoxConsole.SelectedValue = gameRij.ConsoleId; 
    } 

回答

0

我懷疑這是因爲你設置的組合框源「遊戲機」,而第二個孩子打開時的背景下, 「控制檯」已經改變(指向不同的記錄),您需要兩個單獨的「控制檯」數據源實例來爲兩個不同的組合框輸入數據。 ds,如果只有一個「控制檯」對象,並且它由MDI父級擁有,那麼這兩個MDI子級都依賴它。改變這一點,並且你改變所有MDI兒童對這些數據的顯示。

+0

謝謝,問題解決了! – JochenDB

相關問題