Usare Visual C# per fare in modo che un oggetto UserControl funzioni come fase di progettazione del contenitore di controlli
Questo articolo fornisce informazioni su come fare in modo che un oggetto UserControl funzioni come contenitore di controlli in fase di progettazione dopo aver aggiunto l'oggetto UserControl a un Windows Form.
Versione originale del prodotto: Oggetto visivo C#
Numero KB originale: 813450
Riepilogo
Questo articolo fa riferimento allo spazio dei nomi System.ComponentModel
della libreria di classi di Microsoft .NET Framework.
Questo articolo dettagliato descrive come fare in modo che un oggetto UserControl funzioni come contenitore di controllo in fase di progettazione dopo aver inserito UserControl in un Windows Form. Possono verificarsi situazioni in cui si vuole trascinare un controllo in UserControl. A tale scopo, UserControl deve fungere da contenitore di controlli.
Per impostazione predefinita, un oggetto UserControl può fungere da contenitore di controllo solo quando si crea il controllo. Per rendere un host UserControl un controllo costitutivo dopo aver inserito UserControl in un Windows Form, è necessario modificare la finestra di progettazione predefinita di UserControl. Per implementare i servizi in fase di progettazione per un componente, usare la DesignerAttribute
classe dello spazio dei System.ComponentModel
nomi . L'oggetto DesignerAttribute
viene fornito prima della dichiarazione di classe. DesignerAttribute
Inizializzare passando i designerTypeName
parametri e designerBaseType
.
designerTypeName
è il nome completo del tipo di finestra di progettazione che fornisce servizi in fase di progettazione. Passare la combinazione di System.Windows.Forms.Design.ParentControlDesigner
e System.Design
per il designerTypeName
parametro . La ParentControlDesigner
classe estende il comportamento in fase di progettazione per un oggetto UserControl.
designerBaseType
è il nome della classe di base per la finestra di progettazione. La classe utilizzata per i servizi in fase di progettazione deve implementare l'interfaccia IDesigner.
Creare UserControl come contenitore di controlli in fase di progettazione
Creare un nuovo progetto libreria di controlli Windows Visual C#. A tal fine, attenersi alla seguente procedura:
- Avviare Visual Studio.
- Scegliere Nuovo dal menu File, quindi fare clic su Progetto.
- In Tipi di progetto fare clic su Visual C#, quindi fare clic su Windows Forms Libreria di controlli in Modelli.
Assegnare al progetto il nome ContainerUserControl. Per impostazione predefinita, viene creato UserControl1.cs .
In Esplora soluzioni fare clic con il pulsante destro del mouse su UserControl1.cs e quindi scegliere Visualizza codice.
Aggiungere il codice seguente alla sezione delle dichiarazioni:
using System.ComponentModel.Design;
Applicare l'attributo
System.ComponentModel.DesignerAttribute
al controllo come indicato di seguito:[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] public class UserControl1 : System.Windows.Forms.UserControl { ... }
Nel menu Compila fare clic su Compila soluzione.
Testare UserControl
Creare un nuovo progetto Visual C#. A tal fine, attenersi alla seguente procedura:
- Avviare Visual Studio.
- Scegliere Nuovo dal menu File, quindi fare clic su Progetto.
- In Tipi di progetto fare clic su Visual C# e quindi su Windows Forms'applicazione in Modelli. Per impostazione predefinita, viene creato Form1.cs .
Aggiungere il controllo UserControl1 alla casella degli strumenti.
- Nel menu Strumenti fare clic su Scegli elementi della casella degli strumenti.
- Nella scheda Componenti di .NET Framework fare clic su Sfoglia.
- Nella casella Apri file individuare la DLL compilata quando è stato creato il controllo UserControl.
Trascinare UserControl1 dalla casella degli strumenti (in Windows Forms) a Form1.cs.
Trascinare un controllo Button dalla casella degli strumenti a UserControl1.
Nota
UserControl1 si comporta come contenitore di controlli per il controllo Button.
Riferimenti
Per altre informazioni, vedere il sito Web Microsoft: Classe ParentControlDesigner.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per