2013-05-31 5 views
0

DataGridViewRow를 두 번 클릭하면 MDI 자식이 열립니다. MDI 자식에는이 선택된 행의 값이 표시됩니다. 값 중 하나가 콤보 상자에 표시됩니다. 첫 번째 MDI 자식을 열면 모든 것이 잘되고 콤보 상자에 올바른 값 (올바른 콘솔)이 표시됩니다.동일한 MDI 자식을 열면 Combobox 값이 변경됩니다.

그러나 DataGridView 다른 행을 선택하여 비슷한 두 번째 MDI 자식 열면 첫 번째 MDI 자식 comboboxvalue 두 번째 MDI 자식 표시되어야하는 값을 변경합니다. 첫 번째 MDI 자식 폼의 다른 모든 textboxvalues ​​여전히 올바르게 표시됩니다.

누구에게이 문제의 해결책이 있습니까?

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