Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese
Informazioni
L'argomento richiesto è visualizzato di seguito, ma non è incluso in questa libreria.

Procedura dettagliata: recupero collettivo di informazioni relative alle finestre di dialogo tramite oggetti

La maggioranza delle finestre di dialogo di Windows Form dispongono di proprietà per l'esposizione di informazioni al form padre. Anziché creare più proprietà, è possibile esporre un gruppo di dati correlati tramite una singola proprietà della finestra di dialogo creando un oggetto classe che archivia tutte le informazioni necessarie al form padre.

Nella seguente procedura dettagliata viene creata una finestra di dialogo che espone una proprietà UserInformation che include dati relativi a nome e indirizzo di posta elettronica, disponibile al form padre anche dopo la chiusura della finestra di dialogo.

Per creare una finestra di dialogo che esponga i propri dati attraverso un oggetto

  1. In Visual Studio creare un nuovo progetto Windows Form denominato DialogBoxObjects. Per ulteriori informazioni, vedere Procedura: creare un nuovo progetto di applicazione Windows Form.

  2. Aggiungere un nuovo oggetto Form al progetto e denominarlo InformationForm. Per ulteriori informazioni, vedere Procedura: aggiungere Windows Form a un progetto.

  3. Dalla Casella degli strumenti trascinare un controllo TableLayoutPanel nel form InformationForm.

  4. Utilizzare lo smart tag a forma di freccia accanto al controllo TableLayoutPanel per aggiungere una terza riga alla tabella.

  5. Utilizzare il mouse per ridimensionare le tre righe in modo che siano tutte uguali.

  6. Dalla Casella degli strumenti trascinare un controllo Label in ogni cella della prima colonna della tabella.

  7. Impostare la proprietà Name dei controlli Label su firstNameLabel, lastNameLabel e emailLabel.

  8. Impostare la proprietà Text dei controlli su Nome, Cognome e Posta elettronica.

  9. Dalla Casella degli strumenti trascinare un controllo TextBox in ogni cella della seconda colonna.

  10. Impostare la proprietà Name dei controlli TextBox su firstNameText, lastNameText e emailText.

  11. Dalla Casella degli strumenti trascinare un controllo Button nel form.

  12. Impostare la proprietà Name del controllo Button su closeFormButton.

  13. Impostare la proprietà Text del controllo Button su OK.

  14. Aggiungere al progetto una nuova classe denominata UserInformation.

  15. Per un progetto C#, aggiungere il qualificatore public alla definizione della classe per rendere la classe visibile all'esterno dello spazio dei nomi.

  16. Nella classe UserInformation aggiungere le definizioni di proprietà per le proprietà FirstName, LastName e EmailAddress. Al termine, il codice dovrebbe risultare simile al seguente:

    
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace DialogBoxObjects
    {
        public class UserInformation
        {
            private string _firstName = "";
            private string _lastName = "";
            private string _emailAddress = "";
    
            public string FirstName
            {
                get
                {
                    return (_firstName);
                }
                set
                {
                    _firstName = value;
                }
            }
    
            public string LastName
            {
                get
                {
                    return (_lastName);
                }
                set
                {
                    _lastName = value;
                }
            }
    
            public string EmailAddress
            {
                get
                {
                    return (_emailAddress);
                }
                set
                {
                    _emailAddress = value;
                }
            }
        }
    }
    
    
    
  17. In Esplora soluzioni fare clic con il pulsante destro del mouse su InformationForm e scegliere Visualizza codice.

  18. Nella pagina code-behind per InformationForm immettere il codice seguente nella classe InformationForm per aggiungere una proprietà UserInformation.

    
    UserInformation _ui = new UserInformation();
    
    public UserInformation UserInformation
    {
        get
        {
            return (_ui);
        }
    }
    
    
    
  19. Nella classe InformationForm aggiungere un gestore dell'evento Validated per ogni controllo TextBox.

  20. Nel codice del gestore dell'evento aggiornare la proprietà corrispondente della classe UserInformation ogni qualvolta il valore di TextBox viene modificato, come illustrato nel codice seguente. Per ulteriori informazioni, vedere Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione.

    
    public InformationForm()
    {
        InitializeComponent();
    
        firstNameText.Validated += new EventHandler(firstNameText_Validated);
        lastNameText.Validated += new EventHandler(lastNameText_Validated);
        emailText.Validated += new EventHandler(emailText_Validated);
    }
    
    void firstNameText_Validated(object sender, EventArgs e)
    {
        string firstNameTemp = firstNameText.Text.Trim();
        if (firstNameText.Text.Trim().Length > 0)
        {
            _ui.FirstName = firstNameTemp;
        }
    }
    
    void lastNameText_Validated(object sender, EventArgs e)
    {
        string lastNameTemp = lastNameText.Text.Trim();
        if (lastNameText.Text.Trim().Length > 0)
        {
            _ui.LastName = lastNameTemp;
        }
    }
    
    void emailText_Validated(object sender, EventArgs e)
    {
        string emailTemp = emailText.Text.Trim();
        if (emailTemp.Length > 0)
        {
            _ui.EmailAddress = emailTemp;
        }
    }
    
    
    
  21. Nella classe InformationForm aggiungere un gestore dell'evento Click per il controllo closeFormButton.

  22. Nel codice del gestore dell'evento convalidare l'input e chiudere la finestra di dialogo se l'input è valido, come illustrato nel codice seguente.

    
    private void closeFormButton_Click(object sender, EventArgs e)
    {
        if (_ui.FirstName.Length == 0)
        {
            MessageBox.Show("First name cannot be zero-length.");
            return;
        }
        if (_ui.LastName.Length == 0)
        {
            MessageBox.Show("Last name cannot be zero-length.");
            return;
        }
        if (_ui.EmailAddress.Length == 0)
        {
            MessageBox.Show("Email address cannot be zero-length.");
            return;
        }
    
        this.DialogResult = DialogResult.OK;
        this.Hide();
    }
    
    
    

Per visualizzare la finestra di dialogo creata e recuperare i dati utilizzando un oggetto

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1 e scegliere Visualizza finestra di progettazione.

  2. Dalla Casella degli strumenti trascinare un controllo Button nel form.

  3. Impostare la proprietà Name del controllo Button su showFormButton.

  4. Impostare la proprietà Text del controllo Button su Mostra form.

  5. Aggiungere un gestore dell'evento Click per il controllo showFormButton.

  6. Nel codice del gestore dell'evento chiamare la finestra di dialogo e visualizzare i risultati come illustrato nel codice seguente.

    
    private void showFormButton_Click(object sender, EventArgs e)
    {
        InformationForm iForm = new InformationForm();
        DialogResult dr = iForm.ShowDialog();
        if (dr == DialogResult.OK)
        {
            string txt = "First Name: " + iForm.UserInformation.FirstName + "\r\n";
            txt += "Last Name: " + iForm.UserInformation.LastName + "\r\n";
            txt += "Email Address: " + iForm.UserInformation.EmailAddress;
    
            MessageBox.Show(txt);
        }
    
        iForm.Dispose();
    }
    
    
    
  7. Compilare ed eseguire l'esempio.

  8. Quando viene visualizzato Form1, fare clic sul pulsante Mostra form.

  9. Quando viene visualizzato InformationForm, specificare le informazioni, quindi fare clic su OK.

    Quando si fa clic su OK, le informazioni specificate vengono recuperate dal form e visualizzate in una finestra di messaggio, quindi il form viene chiuso.

Mostra: