Share via


Procedura dettagliata: Eseguire il debug di controlli Windows Form personalizzati in fase di progettazione

Quando si crea un controllo personalizzato, spesso è necessario eseguire il debug del comportamento in fase di progettazione. Ciò vale soprattutto se si crea una finestra di progettazione personalizzata per il controllo personalizzato. Per informazioni dettagliate, vedere Procedura dettagliata: Creazione di un controllo Windows Form che sfrutta le funzionalità della fase di progettazione di Visual Studio.

È possibile eseguire il debug dei controlli personalizzati usando Visual Studio, esattamente come si eseguirà il debug di qualsiasi altra classe .NET Framework. La differenza è che si eseguirà il debug di un'istanza separata di Visual Studio che esegue il codice del controllo personalizzato.

Importante

Questo articolo è destinato principalmente alla progettazione in-process classica per Windows Form con .NET Framework. Le procedure potrebbero non essere direttamente applicabili o completamente compatibili con i progetti destinati a .NET (non .NET Framework).

Per i progetti .NET Framework, solo i progetti che possono essere compilati con le impostazioni di destinazione della piattaforma Any o x64 sono completamente supportati in Progettazione. I progetti che usano ActiveX, COM o altri componenti a 32 bit possono presentare problemi di compatibilità. Progettazione out-Of_Process framework, attualmente in anteprima, risolve molti di questi problemi di compatibilità. Tuttavia, la funzionalità in fase di progettazione potrebbe non funzionare così come la finestra di progettazione in-process a 64 bit. Per abilitare Progettazione framework out-of-process, passare a Strumenti>Opzioni>Funzionalità di anteprima dell'ambiente.>

Per altre informazioni sulla finestra di progettazione out-of-process, vedere Modifiche della finestra di progettazione rispetto a .NET Framework.

Creare il progetto

Il primo passaggio consiste nel creare il progetto dell'applicazione. Questo progetto verrà usato per compilare l'applicazione che ospita il controllo personalizzato.

In Visual Studio creare un progetto applicazione Windows e denominarlo DebuggingExample.

Creare il progetto della libreria di controlli

  1. Aggiungere un progetto Libreria di controlli Windows alla soluzione.

  2. Aggiungere un nuovo elemento UserControl al progetto DebugControlLibrary. Denominarlo DebugControl.

  3. In Esplora soluzioni eliminare il controllo predefinito del progetto eliminando il file di codice con un nome di base UserControl1.

  4. Compilare la soluzione.

Checkpoint

A questo punto, sarà possibile visualizzare il controllo personalizzato nella casella degli strumenti.

Per controllare lo stato di avanzamento, trovare la nuova scheda denominata DebugControlLibrary Components e fare clic per selezionarla. Quando si apre, il controllo verrà elencato come DebugControl con l'icona predefinita accanto.

Aggiungere una proprietà al controllo personalizzato

Per dimostrare che il codice del controllo personalizzato è in esecuzione in fase di progettazione, si aggiungerà una proprietà e si imposta un punto di interruzione nel codice che implementa la proprietà .

  1. Aprire DebugControl nell'editor di codice. Aggiungere il codice seguente alla definizione della classe:

    Private demoStringValue As String = Nothing
    <BrowsableAttribute(true)>
    Public Property DemoString() As String
    
        Get
            Return Me.demoStringValue
        End Get
    
        Set(ByVal value As String)
            Me.demoStringValue = value
        End Set
    
    End Property
    
    private string demoStringValue = null;
    [Browsable(true)]
    public string DemoString
    {
        get
        {
            return this.demoStringValue;
        }
        set
        {
            demoStringValue = value;
        }
    }
    
  2. Compilare la soluzione.

Aggiungere il controllo personalizzato al modulo host

Per eseguire il debug del comportamento in fase di progettazione del controllo personalizzato, si inserisce un'istanza della classe di controllo personalizzata in un modulo host.

  1. Nel progetto "DebuggingExample" aprire Form1 nella finestra di progettazione Windows Form.

  2. Nella casella degli strumenti aprire la scheda DebugControlLibrary Components e trascinare un'istanza DebugControl nel form.

  3. Trovare la DemoString proprietà personalizzata nella finestra Proprietà . Si noti che è possibile modificarne il valore come qualsiasi altra proprietà. Si noti anche che quando la DemoString proprietà è selezionata, la stringa di descrizione della proprietà viene visualizzata nella parte inferiore della finestra Proprietà .

Configurare il progetto per il debug in fase di progettazione

Per eseguire il debug del comportamento della fase di progettazione del controllo personalizzato, si eseguirà il debug di un'istanza separata di Visual Studio che esegue il codice del controllo personalizzato.

  1. Fare clic con il pulsante destro del mouse sul progetto DebugControlLibrary nel Esplora soluzioni e scegliere Proprietà.

  2. Nella finestra delle proprietà DebugControlLibrary selezionare la scheda Debug .

    Nella sezione Avvia azione selezionare Avvia programma esterno. Si eseguirà il debug di un'istanza separata di Visual Studio, quindi fare clic sul pulsante con i puntini di sospensione (The Ellipsis button (...) in the Properties window of Visual Studio) per cercare l'IDE di Visual Studio. Il nome del file eseguibile è devenv.exe e, se è stato installato nel percorso predefinito, il percorso è %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE.

  3. Selezionare OK per chiudere la finestra di dialogo.

  4. Fare clic con il pulsante destro del mouse sul progetto DebugControlLibrary e scegliere Imposta come progetto di avvio per abilitare questa configurazione di debug.

Eseguire il debug del controllo personalizzato in fase di progettazione

A questo momento è possibile eseguire il debug del controllo personalizzato durante l'esecuzione in modalità progettazione. Quando si avvia la sessione di debug, verrà creata una nuova istanza di Visual Studio e verrà usata per caricare la soluzione "DebuggingExample". Quando si apre Form1 in Progettazione moduli, verrà creata un'istanza del controllo personalizzato e verrà avviata l'esecuzione.

  1. Aprire il file di origine DebugControl nell'editordi codice e posizionare un punto di interruzione nella Set funzione di accesso della DemoString proprietà .

  2. Premere F5 per avviare la sessione di debug. Viene creata una nuova istanza di Visual Studio. È possibile distinguere tra le istanze in due modi:

    • L'istanza di debug ha la parola Running nella relativa barra del titolo

    • L'istanza di debug ha il pulsante Start sulla barra degli strumenti Debug disabilitato

    Il punto di interruzione viene impostato nell'istanza di debug.

  3. Nella nuova istanza di Visual Studio aprire la soluzione "DebuggingExample". È possibile trovare facilmente la soluzione selezionando Progetti recenti dal menu File. Il file di soluzione "DebuggingExample.sln" verrà elencato come file usato più di recente.

    Importante

    Se si esegue il debug di un progetto .NET 6 o versione successiva Windows Form, non caricare il progetto, usare invece questa istanza di Visual Studio per collegare un debugger al processo DesignToolsServer.exe. Selezionare la voce di menu Debug>Connetti a processo. Trovare DesignToolsServer.exe nell'elenco dei processi e premere Collega. Per altre informazioni, vedere Modifiche della finestra di progettazione da .NET Framework.

  4. Aprire Form1 in Progettazione moduli e selezionare il controllo DebugControl .

  5. Modificare il valore della proprietà DemoString . Quando si esegue il commit della modifica, l'istanza di debug di Visual Studio acquisisce lo stato attivo e l'esecuzione si arresta in corrispondenza del punto di interruzione. È possibile eseguire una singola procedura della funzione di accesso alle proprietà esattamente come qualsiasi altro codice.

  6. Per arrestare il debug, uscire dall'istanza ospitata di Visual Studio o selezionare il pulsante Arresta debug nell'istanza di debug.

Passaggi successivi

Ora che è possibile eseguire il debug dei controlli personalizzati in fase di progettazione, è possibile espandere l'interazione del controllo con l'IDE di Visual Studio.

  • È possibile utilizzare la DesignMode proprietà della Component classe per scrivere codice che verrà eseguito solo in fase di progettazione. Per informazioni dettagliate, vedere DesignMode.

  • Esistono diversi attributi che è possibile applicare alle proprietà del controllo per modificare l'interazione del controllo personalizzato con la finestra di progettazione. È possibile trovare questi attributi nello spazio dei System.ComponentModel nomi .

  • È possibile scrivere una finestra di progettazione personalizzata per il controllo personalizzato. In questo modo è possibile controllare completamente l'esperienza di progettazione usando l'infrastruttura di progettazione estendibile esposta da Visual Studio. Per informazioni dettagliate, vedere Procedura dettagliata: Creazione di un controllo Windows Form che sfrutta le funzionalità della fase di progettazione di Visual Studio.

Vedi anche