Bug in Framework 2.0 ? Context überlappt

Trivalik

Mitglied
Ich habe folgendes geschrieben:
Code:
  private void MenüFüllen(ref System.Windows.Forms.ContextMenuStrip Menü, string[] gefundene)
  {
   foreach (string einer in gefundene)
   {
	foreach (KategorieMitDaten KategorieSatz in daten)
	{
	 Microsoft.Win32.FileInfo.DateiInfo Datensatz = KategorieSatz.GetDatensatzDesAnzeigeNamens(einer);
	 if (Datensatz.AnzeigeName == einer)
	 {
	  bool eingetragen = false;
	  for(int i=0;i<Menü.Items.Count;i++)
	  {
	   if (Menü.Items[i].GetType().FullName == "System.Windows.Forms.ToolStripComboBox" && Menü.Items[i].Name == KategorieSatz.GetKategorie())
	   {
		eingetragen = true;
		((ToolStripComboBox)Menü.Items[i]).Items.Add(einer);
		break;
	   }
	  }
	  if (eingetragen==false)
	  {
	   System.Windows.Forms.ToolStripComboBox combo = new System.Windows.Forms.ToolStripComboBox();
	   combo.Name = KategorieSatz.GetKategorie();
	   combo.Items.Add("- " + KategorieSatz.GetKategorie() + " -");
	   combo.SelectedIndex = 0;
	   combo.SelectedIndexChanged += new EventHandler(combo_SelectedIndexChanged);
	   combo.AutoSize = true;
	   combo.Items.Add(einer);
	   Menü.Items.Add(combo);
	   combo=null;
	  }
	  break;
	 }
	}
   }
  }
 
 public void MenüpunktOptionExitHinzufügen(ref System.Windows.Forms.ContextMenuStrip Menü)// System.Windows.Forms.Form Formular)
  {
   //Festplatte Durchsuchen
   System.Windows.Forms.ToolStripButton menuDurchsuchen = new System.Windows.Forms.ToolStripButton();
   menuDurchsuchen.Text = "Festplatte Durchsuchen";
   menuDurchsuchen.Name = "menuDurchsuchen";
   menuDurchsuchen.Click += new EventHandler(bFestplatteDurchsuchen_Click);
   //Optionen
   System.Windows.Forms.ToolStripButton menuOptionen = new System.Windows.Forms.ToolStripButton();
   menuOptionen.Text = "Optionen";
   menuOptionen.Name = "menuOptionen";
   menuOptionen.Click += new EventHandler(menuOptionen_Click);
   //Exit
   System.Windows.Forms.ToolStripButton menuExit = new System.Windows.Forms.ToolStripButton();
   menuExit.Text = "Exit";
   menuExit.Name = "menuExit";
   menuExit.Click += new EventHandler(menuExit_Click);
   //Hinzufügen
   if (Menü.Items.Count == 0)
   {
	Menü.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
			menuDurchsuchen,
			menuOptionen,
			new System.Windows.Forms.ToolStripSeparator(),
			menuExit});
   }
   else
   {
	//Sparmodus
	System.Windows.Forms.ToolStripButton menuSparmodus = new System.Windows.Forms.ToolStripButton();
	menuSparmodus.Text = "Speicher sparen";
	menuSparmodus.Name = "menuSparmodus";
	menuSparmodus.Click += new EventHandler(menuSparmodus_Click);
	Menü.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
			new System.Windows.Forms.ToolStripSeparator(),
			menuDurchsuchen,
			menuSparmodus,
			menuOptionen,
			new System.Windows.Forms.ToolStripSeparator(),
			menuExit});
   }
   menuDurchsuchen = null;
   menuExit = null;
   menuOptionen = null;
  }

Erste werden Combo Boxen eingefügt (mit ersten) und dann noch der standart krempel mit der zweiten. Jedoch kommt dann bei bestimmt konztilationen eine überlappung wie im anhang.
 

Anhänge

  • context.PNG
    context.PNG
    859 Bytes · Aufrufe: 71
Ich kanns jetzt zwar net nachvollziehen, da ich auf diesem Rechner kein .NET 2 draufhab, aber nachdem .NET 2 noch im Beta-Stadium ist, würd ich Bugs nicht ausschließen ...

Wobei es auch durchaus sein kann, dass du etwas falsch machst, nachdem es nur in bestimmten Konstellationen auftritt ...
 
Ich habe eine Lösung gefunden. Es war anscheind die Menü.Items.Clear(); . Diese hat es nicht richtig gelöscht und somit kam irgend ein fehler zustand. Habe nun einfach Menü =new ContextMenuStrip(); gemacht, somit wird es zuverlässig gemacht.
 

Neue Beiträge

Zurück