Main-Klasse ----------- // OLD_FILES, reicht aus private void MainFile_Click(object sender, EventArgs e) { SingVar instance = SingVar.getInstance(); SingVar.callBack_checkFileopen delgt = checkFileopen; instance.createOldFilesMenuItems(MainFile, delgt); } // wenn Alt D gedrueckt wird private void MainFile_DropDownOpened(object sender, EventArgs e) { MainFile_Click(sender, e); } public void checkFileopen(string sFilename) { bool bIsOpen = false; foreach (Form childForm in MdiChildren) { string s = ((ChildForm)childForm).Filename; if (sFilename.Equals(((ChildForm)childForm).Filename, StringComparison.OrdinalIgnoreCase)) { childForm.Activate(); bIsOpen = true; break; } } if (!bIsOpen) { OpenFile(sFilename); SingVar instance = SingVar.getInstance(); instance.deleteFile(sFilename); } } Utility-Klasse -------------- public static string C_REG_ADR = "SOFTWARE\\WILHELM\\HTML"; public delegate void callBack_checkFileopen(string sFilename); public void createOldFilesMenuItems(ToolStripMenuItem MainFile, callBack_checkFileopen delgt) { this.delgt = delgt; createList_OldFiles(MainFile); int n = oldfiles.Count; for (int i = 0; i < n; i++) { string sFile = (string) oldfiles[i]; string sItem = ""; switch (i+1) { case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: sItem = "&" + (i + 1).ToString() + " " + sFile; break; case 10: sItem = "1&0 " + sFile; break; default: sItem = (i + 1).ToString() + " " + sFile; break; } MyToolStripMenuItem mnItem = new MyToolStripMenuItem(sItem, sFile); mnItem.Name = "File" + (i + 1).ToString(); mnItem.Size = new System.Drawing.Size(279, 22); mnItem.Tag = SingVar.C_OLDFILE_MARKER; MainFile.DropDownItems.Add(mnItem); mnItem.Click += new System.EventHandler(MnOldFile_Click); } saveOldFiles2Registry(); } private void MnOldFile_Click(object sender, EventArgs e) { MyToolStripMenuItem mnItem = (MyToolStripMenuItem)sender; delgt( mnItem.Filename ); // checkFileopen((string)mnItem.Text); // MessageBox.Show((string)mnItem.Text); } public static void createList_OldFiles(ToolStripMenuItem MainFile) { // ToolStripMenuItem menu; // var eintrag1 = contextMenuStrip1.Items.Cast().Where(m => m.Text == "Eintrag 1").FirstOrDefault(); ToolStripItemCollection coll = MainFile.DropDownItems; // ToolStripSeparator int i = 0; ArrayList liste = new ArrayList(); foreach (ToolStripItem control in coll) { if (control.GetType().Name.Equals("MyToolStripMenuItem")) { liste.Add(i); //menu = (ToolStripMenuItem)control; //if ( (menu.Tag != null) ) //{ // if ( ((string)menu.Tag).Equals(C_OLDFILE_MARKER) ) { // // MessageBox.Show(menu.Text, i + ""); // liste.Add(i); // } //} } i++; } for (i = liste.Count - 1; i >= 0; i--) { int j = (int)liste[i]; coll.RemoveAt((int)liste[i]); } } // OLD_FILES END Zuaetzliche Klasse ------------------ class MyToolStripMenuItem : ToolStripMenuItem { private string sFilename=""; public string Filename { get { return sFilename; } } public MyToolStripMenuItem(string item, string sFilename) : base(item) { this.sFilename = sFilename; } }