void EliminaButton_Click(object sender, EventArgs e)
 {
     try
     {
         if (Mails.Count > 0)
         {
             throw new ArgumentException("Devi prima rimuovere tutti i membri");
         }
         while (Gruppo.MembriGruppo.Count > 0)
         {
             Gruppo.RimuoviMembro(Gruppo.MembriGruppo[0].Mail);
         }
         Observer.AggiornaUI();
         GruppoForm.DialogResult = DialogResult.OK;
     }
     catch (ArgumentException ae)
     {
         GruppoForm.ErrorProvider.SetError(GruppoForm.EliminaButton, ae.Message);
     }
 }
        private void ConfermaButton_Click(object sender, EventArgs e)
        {
            GruppoForm.ErrorProvider.Clear();
            try
            {
                if (Mails.Count == 0)
                {
                    throw new ArgumentException("Inserisci almeno un'altro utente", "membro");
                }
                Gruppo.Nome = GruppoForm.NomeGruppoTextBox.Text;
                Gruppo.Foto = GruppoForm.PictureBox.ImageLocation;
                int i;
                for (i = 0; i < Gruppo.MembriGruppo.Count; i++)
                {
                    int j;
                    for (j = 0; j < Mails.Count; j++)
                    {
                        if (Gruppo.MembriGruppo[i].Mail.Equals(Mails[j].Text))
                        {
                            break;
                        }
                    }
                    if (j < Mails.Count)
                    {
                        continue;
                    }
                    Gruppo.RimuoviMembro(Gruppo.MembriGruppo[i].Mail);
                    i--;
                }

                for (int j = i; j < Mails.Count; j++)
                {
                    if (Mails[j].Text.Equals(""))
                    {
                        throw new ArgumentException("Inserisci una mail", "membro");
                    }
                    Utente utente = GestoreUtenti.Instance.GetUtente(Mails[j].Text);
                    if (utente == null)
                    {
                        throw new ArgumentException("Utente " + Mails[j].Text + " inesistente", "membro");
                    }
                    Gruppo.AggiungiMembro(utente);
                }
                Gruppo.AggiungiMembro(Utente);
                Observer.AggiornaUI();
                GruppoForm.DialogResult = DialogResult.OK;
            }
            catch (ArgumentException ae)
            {
                Control control;
                switch (ae.ParamName)
                {
                case "nome":
                    control = GruppoForm.NomeGruppoTextBox;
                    break;

                case "membro":
                    control = GruppoForm.AggiungiPersonaLinkLabel;
                    break;

                case "file":
                    control = GruppoForm.FileLabel;
                    break;

                default:
                    GruppoForm.ErrorProvider.SetIconAlignment(GruppoForm.ConfermaButton, ErrorIconAlignment.MiddleLeft);
                    control = GruppoForm.ConfermaButton;
                    break;
                }
                GruppoForm.ErrorProvider.SetError(control, string.IsNullOrEmpty(ae.ParamName) ?
                                                  ae.Message : ae.Message.Substring(0, ae.Message.IndexOf('\n')));
            }
        }