Condividi tramite


Creazione di un controllo Windows Form (C++)

Aggiornamento: novembre 2007

I controlli Windows Form sono componenti che è possibile aggiungere ad applicazioni Windows Form, ovvero applicazioni GUI destinate a Common Language Runtime. Le applicazioni Windows Form in Visual C++ utilizzano le classi .NET Framework e altre funzionalità .NET con la nuova sintassi Visual C++.

In questa procedura viene creato un controllo Windows Forms in cui è visualizzato un numero che aumenta ogni volta che un utente fa clic sull'etichetta in un'applicazione. Verrà inoltre creato un progetto di applicazione Windows Form per il test del controllo.

Questa procedura dettagliata include:

  • Creazione di un nuovo progetto.

  • Progettazione del controllo.

  • Aggiunta di una proprietà personalizzata al controllo.

  • Aggiunta di un progetto per il test del controllo.

  • Inserimento del controllo in un'applicazione.

  • Esecuzione dell'applicazione.

Prerequisiti

In questo argomento si presuppone la conoscenza delle nozioni di base del linguaggio C++. Chi sta iniziando ad apprendere le prime nozioni di C++ troverà particolarmente utile il testo "C++ Beginner's Guide" scritto da Herb Schildt, disponibile in linea all'indirizzo https://go.microsoft.com/fwlink/?LinkId=115303 (informazioni in lingua inglese).

Collegamento a video Per una dimostrazione video, vedere Procedura relativa a contenuti video: Creazione di un controllo Windows Form (C++) (informazioni in lingua inglese).

Creazione di un nuovo progetto

Il modello di progetto del controllo Windows Form utilizzato in questa sezione consente di creare un controllo utente, ovvero un controllo composito contenente altri controlli.

In alternativa, è possibile creare un controllo Windows Form derivando una classe direttamente dalla classe Control, nel qual caso il codice è responsabile della creazione del controllo, o dalla classe Component, ottenendo un controllo senza interfaccia utente.

Per creare un nuovo progetto di controllo Windows Form

  1. Scegliere Nuovo dal menu File, quindi Progetto….

  2. Nel riquadro Tipi progetto selezionare CLR nel nodo Visual C++, quindi Libreria di controlli Windows Form nel riquadro Modelli Visual Studio installati.

    Digitare un nome per il progetto, ad esempio clickcounter.

    Digitare un nome diverso per la soluzione, ad esempio controlandtestapp.

    È possibile accettare il percorso predefinito, digitare il percorso desiderato o passare a una directory in cui salvare il progetto.

  3. Verrà aperta Progettazione Windows Form, con un'area in cui aggiungere i controlli che si desidera posizionare nell'area di progettazione del controllo.

Progettazione del controllo

In questo passaggio viene aggiunto un controllo Label all'area di progettazione del controllo. Vengono quindi impostate alcune proprietà sul controllo stesso e sul controllo Label che contiene.

Per impostare le proprietà di un controllo utente

  1. Se non è possibile visualizzare la finestra Proprietà, scegliere Finestra Proprietà dal menu Visualizza.

    Fare clic sul controllo per selezionarlo e impostarne le proprietà come riportato di seguito:

    • Impostare la proprietà Size su 100, 100.

    • Impostare BorderStyle su Fixed3D.

      I limiti dell'etichetta saranno visibili dopo aver posizionato il controllo in un'applicazione.

  2. Se la finestra Casella degli strumenti non è visibile, scegliere Casella degli strumenti dal menu Visualizza.

    Trascinare un controllo Label dalla Casella degli strumenti all'area di progettazione e posizionarlo in prossimità del centro del controllo.

    Impostare le proprietà seguenti per l'etichetta:

    • Impostare BorderStyle su FixedSingle.

    • Impostare Text sul numero 0 (zero).

    • Impostare Autosize su False.

    • Impostare Size su 30, 20.

    • Impostare TextAlign su MiddleCenter.

    Non modificare la proprietà Name, ovvero come viene fatto riferimento a essa nel codice, impostata su label1. Il controllo dovrebbe essere simile al seguente:

    Layout del controllo

  3. Aggiungere un gestore eventi per l'evento Click dell'etichetta (evento predefinito per un'etichetta) facendo doppio clic sull'etichetta.

  4. Il file clickcounter.hviene visualizzato nell'area di modifica con un metodo del gestore eventi vuoto.

    Nota:

    Se è necessario più spazio, chiudere la finestra Casella degli strumenti o Proprietà facendo clic sulla casella di chiusura appropriata o sbloccando la finestra in modo che venga nascosta automaticamente.

  5. Spostare il cursore posizionandosi dopo la parentesi graffa di apertura del metodo label1_Click, premere Invio e digitare:

    int temp = System::Int32::Parse(label1->Text);
    temp++;
    label1->Text = temp.ToString();
    

    Dopo l'immissione di un operatore di risoluzione dell'ambito (::), un operatore punto (.) o un operatore freccia (->), in IntelliSense verrà visualizzato un elenco di scelte valide. È possibile evidenziare un elemento e premere Tab o Invio oppure fare doppio clic su un elemento per inserirlo nel codice.

    Inoltre, quando si digita una parentesi aperta per un metodo, in Visual Studio verranno visualizzati tipi di argomenti validi per ogni overload del metodo.

Aggiunta di una proprietà personalizzata al controllo

In questo passaggio viene definita una proprietà personalizzata che consente di determinare se il numero visualizzato sul controllo viene incrementato quando un utente fa clic sull'etichetta o su un punto qualsiasi del controllo.

Per aggiungere una proprietà personalizzata a un controllo

  1. Posizionare il cursore dopo i due punti del primo indicatore di ambito public nella parte superiore del file clickcounterControl.h, premere Invio e digitare quanto segue:

    property bool ClickAnywhere {
        bool get() {
            return (label1->Dock == DockStyle::Fill);
        }
        void set(bool val) {
            if (val) 
                label1->Dock = DockStyle::Fill;
            else 
                label1->Dock = DockStyle::None;
        }
    }
    

    Quando la proprietà ClickAnywhere del controllo viene impostata su true, la proprietà Dock dell'etichetta viene impostata su DockStyle::Fill e l'etichetta occupa pertanto l'intera area del controllo. Quando si fa clic su un punto qualsiasi dell'area del controllo, viene generato un evento Click dell'etichetta e viene incrementato il numero visualizzato su di essa.

    Quando la proprietà ClickAnywhere è false (impostazione predefinita), la proprietà Dock dell'etichetta è impostata su DockStyle::None. L'etichetta non occupa interamente il controllo ed è necessario che venga fatto clic all'interno dei suoi limiti per generare un evento Click della stessa con conseguente incremento del numero.

  2. Compilare il controllo utente. Scegliere Compila soluzione dal menu Compila.

    Se non sono presenti errori, viene generato un controllo Windows Form con il nome di file clickcounter.dll. Questo file si trova nella struttura di directory del progetto.

Aggiunta di un progetto per il test del controllo

In questo passaggio viene creato un progetto di applicazione Windows Form in cui verranno inserite istanze del controllo clickcounter in un form.

Nota:

È possibile scrivere l'applicazione Windows Form creata per eseguire il test del controllo in Visual C++ o in un altro linguaggio .NET, ad esempio C# o Visual Basic.

Per creare un progetto di applicazione Windows Form

  • Scegliere Nuovo dal menu File e quindi Progetto....

È anche possibile aggiungere un progetto alla soluzionefacendo clic con il pulsante destro del mouse sulla soluzione controlandtestappin Esplora soluzioni, scegliendo Aggiungi equindi Nuovo progetto…

  1. Nel riquadro Tipi progetto selezionare CLR nel nodo Visual C++, quindi Applicazione Windows Form nel riquadro Modelli Visual Studio installati.

    Digitare un nome per il progetto, ad esempio testapp.

    Assicurarsi di selezionare Aggiungi a soluzione anziché accettare l'impostazione predefinita Crea nuova soluzione nell'elenco a discesa Soluzione, quindi scegliere OK.

  2. Verrà visualizzata Progettazione Windows Form per il nuovo progetto, con un nuovo form denominato Form1 come nella figura seguente:

    Form appena creato

Per aggiungere un controllo alla Casella degli strumenti

  1. Aggiungere un riferimento al controllo. Scegliere Riferimenti dal menu Progetto o fare clic con il pulsante destro del mouse sul progetto testapp in Esplora soluzioni e scegliere Riferimenti.

    Scegliere Aggiungi nuovo riferimento e fare clic sulla scheda Progetti per aggiungere un riferimento a un altro progetto in questa soluzione, quindi selezionare il progetto clickcounter. Fare clic su OK due volte.

  2. Se la finestra Casella degli strumenti non è visibile, scegliere Casella degli strumenti dal menu Visualizza.

  3. Fare clic con il pulsante destro del mouse sulla Casella degli strumenti e scegliere Scegli elementi.

    Scegliere Sfoglia e trovare il file clickcounter.dll nella struttura di directory della soluzione. Selezionare tale file e scegliere Apri.

    Il controllo clickcounter verrà visualizzato nell'elenco Componenti di .NET Framework con un segno di spunta. Scegliere OK.

    Il controllo verrà visualizzato nella Casella degli strumenti con l'icona predefinita dell'ingranaggio.

Inserimento del controllo in un'applicazione

In questo passaggio vengono inserite due istanze del controllo in un form di applicazione e ne vengono impostate le proprietà.

Per inserire le istanze di un controllo in un form

  1. Trascinare due istanze del controllo clickcounter dalla Casella degli strumenti. Inserirle nel form senza sovrapporle.

    Se si desidera ampliare il form, fare clic su di esso per selezionarlo e trascinare uno dei quadratini di ridimensionamento verso l'esterno.

  2. Se la finestra Proprietà non è visibile, scegliere Proprietà dal menu Visualizza.

    Se le proprietà sono organizzate per categoria, la proprietà ClickAnywhere si trova nella sezione Varie della finestra delle proprietà.

  3. Fare clic su un'istanza del controllo clickcounter nel form per selezionarla, quindi impostare la proprietà ClickAnywhere su true.

  4. Lasciare la proprietà ClickAnywhere dell'altra istanza del controllo clickcounter impostata su false (impostazione predefinita).

  5. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto testapp e scegliere Imposta come progetto di avvio.

  6. Scegliere Ricompila soluzione dal menu Compila.

    I due progetti dovrebbero essere stati compilati senza errori.

Esecuzione dell'applicazione

In questo passaggio viene eseguita l'applicazione e viene verificato il funzionamento dei controlli.

Per eseguire il test dell'applicazione

  1. Scegliere Avvia debug dal menu Debug.

    Il form verrà visualizzato con le due istanze del controllo visibili.

  2. Eseguire l'applicazione e fare clic su entrambi i controlli clickcounter:

    • Fare clic sul controllo la cui proprietà ClickAnywhere è impostata su true.

      Il numero sull'etichettaviene incrementato quando si fa clic in un punto qualsiasi del controllo.

    • Fare clic sul controllo la cui proprietà ClickAnywhere è impostata su false.

      Il numero sull'etichetta viene incrementato solo quando si fa clic all'interno del limite visibile dell'etichetta. Nella schermata riportata di seguito viene illustrato l'aspetto dell'applicazione dopo aver fatto clic su di essa alcune volte.

Applicazione di prova in cui vengono visualizzati i controlli

  1. Chiudere l'applicazione di prova facendo clic sulla casella di chiusura nell'angolo superiore destro della finestra Form1.

Passaggi successivi

Precedente:Creazione di un'applicazione Windows Form con .NET Framework (C++) | Successivo:Creazione di un gioco con DirectX (C++)

Vedere anche

Attività

Presentazione guidata di Visual C++

Riferimenti

System.Windows.Forms

Altre risorse

Creazione di applicazioni per Windows

Controlli per Windows Form