2016-05-02 12 views
0

I 2 Werte aus einer INI-Datei gerade lese: Der Abschnittsname, & Der Wert des Schlüssels mit dem Namen "Path"Dynamisch erzeugter Menüeintrag mit angehängtem Code?

[Game Name]

Path = C: \ Spiel \ Game.exe

Was ich versuche zu tun, ist ein Kontextmenüelement mit der Beschriftung der Abschnitt "Spielname" erstellen und starten Sie die Anwendung aus dem Wert der "Pfad" -Taste. Ich habe nicht viel mit dynamisch erstellten Steuerelementen in der Vergangenheit gearbeitet, also frage ich mich, ob es eine einfache Möglichkeit gibt, es zu erstellen, und ihm eine einzelne Codezeile zuweisen, um die Anwendung zu starten.

Ist es möglich, oder gibt es einen einfacheren Weg?

foreach (Zeichenfolge SecHead in SectionHeader) { Zeichenfolge [] Entry = myINI.GetEntryNames (SecHead);

    if (Entry != null) 
        { 
         foreach (string EntName in Entry) 
         { 
          ArrayList row = new ArrayList(); 
          row.Add(SecHead); 
          row.Add(myINI.GetEntryValue(SecHead, EntName)); 
          DGV.Rows.Add(row.ToArray()); 

          string filePath = Convert.ToString(myINI.GetEntryValue(SecHead, EntName)); 

          //Create ContextMenu Entry from Data Above 
          Icon newIcon = Icon.ExtractAssociatedIcon(filePath); 

         } 
        } 
       } 

Antwort

0

Ich gehe davon wissen Sie, wie Sie die INI-Werte zu lesen und dass sie in String Variablen. Lassen Sie uns auch annehmen, dass Sie dies in einem Event-Handler tun, die Mauskoordinaten, wie ein MouseUp Ereignis liefert:

var section = "section"; 
var gameExe = "c:\\somepath\\mygame.exe"; 
var menu = new ContextMenu(); 
var item = new MenuItem(section); 
item.Click += (s, args) => { Process.Start(gameExe); }; 
menu.Items.Add(item); 
menu.Show(this, new Point(e.X, e.Y)); 

nicht live getestet, aber diese sollten Sie die allgemeine Idee geben.

Verwandte Themen