Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #1

    [C#/Windows Form Application] User controls

    salve.
    Avrei bisogno di un consiglio.
    Sto sviluppando una windows form application.
    Vorrei capire se sto procedendo in modo sporco, oppure può andar bene questo approccio?


    MEttiamo caso che abbiamo una schermata principale con un pannello.
    All'interno di questo pannello posso richiamare diversi UserControl.
    Gli User Control non sono altro che schermate diverse del programma, talvolta richiamate sequenzialmente.


    Mettiamo caso che le mie varie schermate sono:
    Form principale che contiene un pannello "MainPanel"
    schermata di login (User control "Login")
    schermata 1 (UserControl1)
    schermata 2 (UserControl2)
    schermata 3 (UserControl3).


    Quello che deve accadere è:
    appena avvio il programma, in automatico chiama la schermata di Login, in questo modo (classe del form principale):
    codice:
    public Tool()
    {
           InitializeComponent();
            MainPanel.Controls.Add(Global.Login = new Login());
    }
    Al click del Button per eseguire il Login, va nella schermata 1 (classe dello UserControl Login.cs)
    codice:
     private void btnLogin_Click(object sender, EventArgs e)
     {
       if(loginOk)
       {
                Control[] controlCollection = Parent.Parent.Controls.Find("MainPanel", true);
                controlCollection[0].Controls.Add(Global.UserControl1 = new UserControl1());
            
                Parent.Controls.Remove(this);
       }
    
    
    }
    Appena va nella schermata dello UserControl1, attraverso 2 radiobutton e un Button può decidere se lanciare lo UserControl2 o lo UserControl3 (classe dello UserControl1.cs)

    codice:
    private void button1_Click(object sender, EventArgs e)
    {
                Control[] controlCollectionMain = Parent.Parent.Controls.Find("MainPanel", true);
               
                if (radioButton1.Checked == true)
                {                
                   controlCollectionMain[0].Controls.Add(Global.UserControl2 = new UserControl2());             
                }
                else
                {
                   controlCollectionMain[0].Controls.Add(Global.UserControl3 = new UserControl3());  
                }
                
                Parent.Controls.Remove(this);
    }
    A seconda della scelta, va appunto nello UserControl2 o UserControl3. Entrambi gli userControl, altraverso un pulsante devono tornare allo UserControl1
    Qui il metodo presente sia nella classe UserControl2.cs sia nella classe UserControl3.cs
    codice:
    private void button13_Click(object sender, EventArgs e)
    {
                Control[] controlCollectionMain = Parent.Parent.Controls.Find("MainPanel", true);
    
    
                controlCollectionMain[0].Controls.Add(Global.UserControl1 = new UserControl1());
    
    
                Parent.Controls.Remove(this);
               
    }
    In pratica non faccio altro che aggiungere e rimuovere di volta in volta i controls dal MainPanel

    Secondo voi è una schifezza fatto in questo modo?
    Potreste suggerirmi un modo più pulito per passare da uno user control ad un altro?
    Grazie
    Ultima modifica di MItaly; 02-07-2014 a 01:33

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.