Avatar billede tfswebguy Nybegynder
14. november 2008 - 08:56 Der er 1 kommentar og
1 løsning

dynamisk toolstripmenu skal åbne fil ved klik

Hej experter

har lavet følgende i en application:

            string curdir = Directory.GetCurrentDirectory();
            string[] subdirs = Directory.GetDirectories(curdir);
            foreach (string i in subdirs)
            {
                ToolStripMenuItem item = new ToolStripMenuItem(i.Replace(curdir, ""));
                string[] files = Directory.GetFiles(i);
                foreach (string x in files)
                {
                    item.DropDownItems.Add(x.Replace(i, ""), null);
                   
                }
                contextMenuStrip1.Items.Add(item);

            }


Ideen er så at når man trykker på følgende:
    item.DropDownItems.Add(x.Replace(i, ""), null);

skulle programmet gerne starte filen.

Men hvordan får jeg lige kringlet den?
Avatar billede aaberg Nybegynder
14. november 2008 - 10:12 #1
Prøv noget lignende dette:

            string curdir = Directory.GetCurrentDirectory();
            string[] subdirs = Directory.GetDirectories(curdir);
            foreach (string i in subdirs)
            {
                ToolStripMenuItem item = new ToolStripMenuItem(i.Replace(curdir, ""));
                string[] files = Directory.GetFiles(i);
                foreach (string x in files)
                {
                    ToolStripMenuItem fileItem = item.DropDownItems.Add(x.Replace(i, ""), null);
                    fileItem.Tag = x;
                    fileItem.Click += new EventHandler(fileItem_Click)
                 
                }
                contextMenuStrip1.Items.Add(item);

            }


og så skal du have en event handler

void item_Click(object sender, EventArgs e)
{
    string fileName = (string)((ToolStripMenuItem)sender).Tag;
    Process.Start(fileName)
}
Avatar billede tfswebguy Nybegynder
19. november 2008 - 04:32 #2
Fandt en måde:

            string[] subdirs = Directory.GetDirectories(curdir);
            foreach (string i in subdirs)
            {
                ToolStripMenuItem item = new ToolStripMenuItem(i);
                categorylist.Items.Add(i);
                string[] files = Directory.GetFiles(i);
                foreach (string x in files)
                {
                    item.DropDownItems.Add(x, null, dropclick);

                }
                contextMenuStrip1.Items.Add(item);
            }


Og dropclick:

        private void dropclick(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start(sender.ToString());
        }


Men ellers tak for svaret ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester