当我双击DataGridViewRow时,我打开一个MDI子项。在MDI子项中,将显示此选定行的值。其中一个值显示在组合框中。当我打开第一个MDI孩子时,一切顺利,组合框显示正确的值(正确的控制台)。
但是,当我打开一个类似的第二个MDI子项从DataGridView中选择另一行时,第一个MDI子项中的组合框值将更改为必须在第二个MDI子项中显示的值。第一个MDI子窗体中的所有其他文本框值仍然可以正确显示。
有没有人能解决这个问题?
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 :(得分:0)
我怀疑这是因为您将组合框源设置为“控制台”,并且当第二个子项打开时,“控制台”的上下文已更改(指向不同的记录。您需要两个单独的实例“控制台”数据源提供两个不同的组合框。
换句话说,如果只有一个“控制台”对象,并且它由MDI父级拥有,则两个MDI子级都依赖它。更改它,然后更改所有MDI子项的数据显示。