Autor Beitrag
Thowen
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 07.11.11 11:17 
Hallo zusammen,

ich habe folgendes Problem:

Ich habe eine Anwendung, in der ein SplitContainer verwendet wird. Im linken Panel sind diverse Buttons (sozusagen ein Auswahlmenü). Je nachdem, welcher Button den Fokus hat, wird im rechten Panel eine andere Grafik dargestellt. Gesteuert wird das sowohl per Maus als auch über die Tastatur (Enter- bzw. Leave-Ereignisse).

Soweit, so einfach.

Nun soll aber bei bestimmten Buttons links und rechts vertauscht werden, also die Grafik links und das "Menü" rechts. Wenn ich nun die Panels vertausche, hängt das Programm mit leerem Fenster und reagiert nicht mehr.
Im Einzelschrittmodus oder wenn ich am Ende des Codeblocks eine MessageBox ausgeben lasse, funktioniert das aber wie gewünscht.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
private void doSwitch(Boolean left)
{
  // Text nach links bringen?
  if (left)
    {
      // Text noch rechts?
      if (panelText.Parent == splitContainer1.Panel2)
      {
        panelText.Parent = splitContainer1.Panel1;
        panelGrafik.Parent = splitContainer1.Panel2;
      }
    }
    else
    {
      // Text noch links?
      if (panelText.Parent == splitContainer1.Panel1)
      {
        splitContainer1.Panel1.Controls.Remove(panelText);
        splitContainer1.Panel2.Controls.Remove(panelGrafik);
        splitContainer1.Panel1.Controls.Add(panelGrafik);
        splitContainer1.Panel2.Controls.Add(panelText);
      }
    }
  }
  MessageBox.Show("fertich"); 
}


Wie man sehen kann, habe ich schon verschiedene Wege zum Vertauschen ausprobiert... immer mit dem gleichen Ergebnis.

So langsam weiß ich nicht mehr weiter...

gruss,
Thowen