Avatar billede thomaxz Nybegynder
05. december 2006 - 09:44 Der er 10 kommentarer og
1 løsning

ContextMenu / ContextMenu hanlder

Ja hvordan laver jeg en context menu handler, altså et menu punkt på den menu som fremkommer ved højreklik på en fil eller en mappe i windows explorer, jge har fundet ud af det skal være en context menu handler for at håndtere flere argumneter kun satrt en instance af et program.

Jeg har fundet flg. side

http://www.codeproject.com/csharp/ratingcolumn.asp

som er ok.

jeg har fundet ud af hvordan mna laver menu, men ikke hvor info kommer frem, vil nemlig genre have to forskellig en for en bestem type fil og en anden for alt andet.

Og heller ikke hvordan jeg starte selve processen, og uden det er det jo lidt ligemeget.
Avatar billede bulgroz Nybegynder
05. december 2006 - 12:40 #1
Hvis  vi snakker Windows Forms kan du med fordel anvende en ContextMenuStrip.
Avatar billede thomaxz Nybegynder
05. december 2006 - 12:43 #2
Jeg snakker om den i windosw eplore /stifinder og denne compuer.
Avatar billede bulgroz Nybegynder
05. december 2006 - 12:53 #3
Hvis det er din egen applikation, så er det vejen frem.
Avatar billede bulgroz Nybegynder
05. december 2006 - 13:15 #4
Et lille hurtigt halvfærdigteksempel:
Hvis du bruger Visual Studio, kan du med fordel bruge Forms editoren...

        private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
        private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemA = new System.Windows.Forms.ToolStripMenuItem();
        private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemB = new System.Windows.Forms.ToolStripMenuItem();


        public Form1()
        {
            InitializeComponent();

            this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);

            this.contextMenuStrip.SuspendLayout();

            this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {this.toolStripMenuItemA, this.toolStripMenuItemB});
            this.contextMenuStrip.Name = "contextMenuStrip";

            this.toolStripMenuItemA.Name = "toolStripMenuItemA";
            this.toolStripMenuItemA.Text = "My Command A";

            this.toolStripMenuItemB.Name = "toolStripMenuItemB";
            this.toolStripMenuItemB.Text = "My Command B";

            this.contextMenuStrip.ResumeLayout(false);

            this.toolStripMenuItemA.Click += new EventHandler(OnToolStripMenuItemAClick);
            this.toolStripMenuItemB.Click += new EventHandler(OnToolStripMenuItemBClick);

            // Eksempel: Assign til en button...
            this.button1.ContextMenuStrip = this.contextMenuStrip;

            // Eksempel: Assign til en DatGrid...
            this.dataGridView.ContextMenuStrip = this.contextMenuStrip;

        }

        // Udføres når A klikkes...
        void OnToolStripMenuItemAClick(object sender, EventArgs e)
        {
            MessageBox.Show("A");
        }

        // Udføres når B klikkes...
        void OnToolStripMenuItemBClick(object sender, EventArgs e)
        {
            MessageBox.Show("B");
        }
Avatar billede thomaxz Nybegynder
05. december 2006 - 16:33 #5
Ja det er min eget program, men kan ikke se hvordan ContextMenuStrip integeres med stifinder, det mit ønske at lave lidt ligesom winrar, at man åbner stifinder og højreklikker på en fil og så vælger f.eks add to archive og ligledes extract når der en fil af den type.
Avatar billede bulgroz Nybegynder
05. december 2006 - 16:44 #6
Da jeg spurgte dig om det var din egen applikation, mente jeg om din applikation havde den grid, eller anden kontrol hvorpå Context Menuen skulle fungere.

Nu forstår jeg imidlertid det som, at det du ønsker at opnå er at tilføre et ekstra menupunkt til context menuen i Stifinder etc. med andre ord, så er Context menuen altså ikke i din egen applikation som beskrevet i mit eksempel.

Har jeg ret i dette?
Avatar billede bulgroz Nybegynder
05. december 2006 - 17:29 #7
I såfald skal du så vidt jeg er orienteret i gang med at leve en Shell Namespace Extension

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/namespaceextension/namespace.asp

http://www.codeproject.com/shell/namespcextguide1.asp

Jeg har desværre ikke nogen erfaring på dette område, men ovenstående links forklarer om emnet. Jeg har dog kun haft held med at finde eksempler i X++
Avatar billede bulgroz Nybegynder
05. december 2006 - 17:30 #8
Sludder C++ ;-)
Avatar billede bulgroz Nybegynder
05. december 2006 - 17:34 #9
Hvis det altså ikke lige var fordi jeg fandt dette C# link

http://www.codeproject.com/csharp/csdoesshell1.asp
Avatar billede thomaxz Nybegynder
01. februar 2009 - 21:41 #10
Kom ikke vidre med projekte, men læg et svar hvis du ville have point.
Avatar billede thomaxz Nybegynder
13. september 2009 - 18:48 #11
Lukker
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