2013-05-31 26 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

相关问题