Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C#]Classe Menu Riutilizzabile

    Ciao a tutti

    Su molte applicazioni con diversi form faccio l'errore che per ogni form utilizzo un toolstripmenu ma che contiene lo stesso tipo di menu, sottomenu e funzioni, utilizzando il form designer.

    Mi piacerebbe realizzare una classe mediante la quale poi richiamare il menu nei forms.

    Stavo procedendo così:

    codice:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Windows.Forms;
    using System.Text;
    
    namespace Win_ApplicationTest
    {
        public class MyToolMenu
        {
            private MenuStrip myStrip;
            private ToolStripMenuItem nuovo;
            
            public void reusableMenu()
            {
                this.myStrip = new MenuStrip();
                this.nuovo = new ToolStripMenuItem();
                this.myStrip.Items.AddRange(new ToolStripItem[] {this.nuovo});
                this.myStrip.Location = new Point(0, 0);
                this.myStrip.Name = "Menu";
                this.myStrip.Size = new Size(875, 25);
                this.myStrip.Text = "Menu";
    
            }
                
        }
    }
    nel form o nei forms dove mi interessa caricarlo, avevo pensato di chiamare la classe nell'evento Form_Load:

    codice:
     private void frmProtoIn_Load(object sender, EventArgs e)
            {
                MyToolMenu mn = new MyToolMenu();
                mn.reusableMenu();
            }
    Ma come molti di voi avranno già intuito, non funziona (ovviamente per mia profonda incapacità).

    Mi potreste indirizzare sulla retta via?

    Grazie mille

    Raoul.

  2. #2
    Ho fatto una prima modifica e qualcosa è cambiato:

    codice:
     public void reusableMenu(Control m)
            {
                this.myStrip = new MenuStrip();
                this.nuovo = new ToolStripMenuItem();
                //this.myStrip.SuspendLayout();
    
                this.myStrip.Items.AddRange(new ToolStripItem[] {this.nuovo});
                this.myStrip.Location = new Point(0, 0);
                this.myStrip.Name = "Menu";
                this.myStrip.Size = new Size(875, 25);
                this.myStrip.Text = "Menu";
                
                
    
            }
    e poi dal form:

    codice:
    private void frmProtoIn_Load(object sender, EventArgs e)
            {
                MyToolMenu mn = new MyToolMenu();
                MenuStrip mst = new MenuStrip();
                mn.reusableMenu(mst);
                this.Controls.Add(mst);
            }
    Ora almeno riesco a vedere il menu, ma resto in ansiosa attesa di illuminazione

  3. #3
    un piccolo up.

    Thx.

    RaouL.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.