Procedura dettagliata: Creare un modello usando i controlli contenuto

Questa procedura dettagliata mostra come creare una personalizzazione a livello di documento che usa i controlli contenuto per creare contenuti strutturati e riutilizzabili in un modello di Microsoft Office Word.

Si applica a: le informazioni contenute in questo argomento si applicano ai progetti a livello di documento per Word. Per altre informazioni, vedere Funzionalità disponibili per app Office lication e tipo di progetto.

Word consente di creare una raccolta di parti di documenti riutilizzabili, denominate blocchi predefiniti. Questa procedura dettagliata mostra come creare due tabelle come blocchi predefiniti. Ogni tabella contiene diversi controlli contenuto che possono includere diversi tipi di contenuto, ad esempio testo normale o date. Una delle tabelle contiene informazioni su un dipendente, mentre un'altra contiene i suggerimenti del cliente.

Dopo aver creato un documento dal modello, è possibile aggiungere una delle tabelle al documento usando diversi oggetti BuildingBlockGalleryContentControl, che visualizzano i blocchi predefiniti disponibili nel modello.

In questa procedura dettagliata sono illustrati i task seguenti:

  • Creazione di una tabella contenente i controlli contenuto in un modello di Word in fase di progettazione.

  • Popolamento a livello di codice di un controllo contenuto della casella combinata e di un controllo contenuto dell'elenco a discesa.

  • Impedire agli utenti di modificare una tabella specificata.

  • Aggiunta di tabelle alla raccolta di blocchi predefiniti di un modello.

  • Creazione di un controllo contenuto che visualizza i blocchi predefiniti disponibili nel modello.

    Nota

    I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzare l'IDE.

Prerequisiti

Per completare questa procedura dettagliata, è necessario disporre dei componenti seguenti:

Creare un nuovo progetto modello di Word

Creare un modello di Word in modo che gli utenti possano creare facilmente le proprie copie.

Per creare un nuovo progetto di modello di Word

  1. Creare un progetto modello di Word con il nome MyBuildingBlockTemplate. Nella procedura guidata creare un nuovo documento nella soluzione. Per altre informazioni, vedere Procedura: Creare progetti di Office in Visual Studio.

    Visual Studio apre il nuovo modello di Word nella finestra di progettazione e aggiunge il progetto MyBuildingBlockTemplate a Esplora soluzioni.

Creare la tabella employee

Creare una tabella che contiene quattro tipi differenti di controlli contenuto in cui un utente può immettere le informazioni su un dipendente.

Per creare la tabella dei dipendenti

  1. Nel modello di Word ospitato nella finestra di progettazione di Visual Studio fare clic sulla scheda Inserisci sulla barra multifunzione.

  2. Nel gruppo Tabelle fare clic su Tabella e inserire una tabella con due colonne e quattro righe.

  3. Digitare il testo nella prima colonna in modo che sia simile alla colonna seguente:

    Nome dipendente
    Data di assunzione
    Title
    Immagine
  4. Fare clic nella prima cella della seconda colonna accanto a Nome dipendente.

  5. Sulla barra multifunzione fare clic sulla scheda Sviluppatore .

    Nota

    Se la scheda Sviluppatore non viene mostrata, è necessario abilitarne la visualizzazione. Per altre informazioni, vedere Procedura: Visualizzare la scheda sviluppatore sulla barra multifunzione.

  6. Nel gruppo Controlli fare clic sul pulsante PlainTextContentControl Testo per aggiungere un oggetto PlainTextContentControl alla prima cella.

  7. Fare clic sulla seconda cella nella seconda colonna (accanto a Hire Date).

  8. Nel gruppo Controlli fare clic sul pulsante DatePickerContentControl Selezione data per aggiungere un oggetto DatePickerContentControl alla seconda cella.

  9. Fare clic sulla terza cella nella seconda colonna (accanto a Title).

  10. Nel gruppo Controlli fare clic sul pulsante ComboBoxContentControl Casella combinata per aggiungere un oggetto ComboBoxContentControl alla terza cella.

  11. Fare clic sull'ultima cella nella seconda colonna (accanto a Picture).

  12. Nel gruppo Controlli fare clic sul pulsante PictureContentControl Controllo contenuto immagine per aggiungere un oggetto PictureContentControl all'ultima cella.

Creare la tabella dei commenti e suggerimenti dei clienti

Creare una tabella che contiene tre tipi differenti di controlli contenuto in cui un utente può immettere le informazioni relative ai suggerimenti dei clienti.

Per creare una tabella dei suggerimenti dei clienti

  1. Nel modello di Word fare clic nella riga dopo la tabella employee aggiunta in precedenza e premere INVIO per aggiungere un nuovo paragrafo.

  2. Sulla barra multifunzione fare clic sulla scheda Inserisci .

  3. Nel gruppo Tabelle fare clic su Tabella e inserire una tabella con due colonne e tre righe.

  4. Digitare il testo nella prima colonna in modo che sia simile alla colonna seguente:

    Nome cliente
    Valutazione della soddisfazione
    Commenti
  5. Fare clic nella prima cella della seconda colonna accanto a Nome cliente.

  6. Sulla barra multifunzione fare clic sulla scheda Sviluppatore .

  7. Nel gruppo Controlli fare clic sul pulsante PlainTextContentControl Testo per aggiungere un oggetto PlainTextContentControl alla prima cella.

  8. Fare clic nella seconda cella della seconda colonna (accanto a Valutazione soddisfazione).

  9. Nel gruppo Controlli fare clic sul pulsante DropDownListContentControl Elenco a discesa per aggiungere un oggetto DropDownListContentControl alla seconda cella.

  10. Fare clic nell'ultima cella della seconda colonna accanto a Commenti.

  11. Nel gruppo Controlli fare clic sul pulsante RichTextContentControl RTF per aggiungere un oggetto RichTextContentControl all'ultima cella.

Popolare la casella combinata e l'elenco a discesa a livello di codice

È possibile inizializzare i controlli contenuto in fase di progettazione usando la finestra Proprietà in Visual Studio. È anche possibile inizializzarli in fase di esecuzione, che consente di impostare dinamicamente i relativi stati iniziali. Per questa procedura dettagliata, usare il codice per popolare le voci in e DropDownListContentControl in ComboBoxContentControl fase di esecuzione in modo da visualizzare il funzionamento di questi oggetti.

Per modificare l'interfaccia utente dei controlli contenuto a livello di codice

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su ThisDocument.cs o ThisDocument.vb e quindi scegliere Visualizza codice.

  2. Aggiungere il codice seguente alla classe ThisDocument . Questo codice dichiara diversi oggetti che verranno usati più avanti nella procedura dettagliata.

    private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl2;
    
  3. Aggiungere il seguente codice al metodo ThisDocument_Startup della classe ThisDocument. Questo codice aggiunge voci a ComboBoxContentControl e DropDownListContentControl nelle tabelle e imposta il testo del segnaposto visualizzato in ciascun controllo prima che l'utente apporti modifiche.

    comboBoxContentControl1.PlaceholderText = "Choose a title, or enter your own";
    comboBoxContentControl1.DropDownListEntries.Add("Engineer", "Engineer", 0);
    comboBoxContentControl1.DropDownListEntries.Add("Designer", "Designer", 1);
    comboBoxContentControl1.DropDownListEntries.Add("Manager", "Manager", 2);
    
    dropDownListContentControl1.PlaceholderText =
        "Choose a rating (1 lowest, 3 highest)";
    dropDownListContentControl1.DropDownListEntries.Add("1", "1", 0);
    dropDownListContentControl1.DropDownListEntries.Add("2", "2", 1);
    dropDownListContentControl1.DropDownListEntries.Add("3", "3", 2);
    

Impedire agli utenti di modificare la tabella employee

Usare l'oggetto GroupContentControl dichiarato in precedenza per proteggere la tabella dei dipendenti. Dopo aver protetto la tabella, gli utenti possono comunque modificarne i controlli contenuto. Tuttavia, non possono modificare il testo nella prima colonna o modificare la tabella in altri modi, ad esempio aggiungendo o rimuovendo righe e colonne. Per altre informazioni su come usare un GroupContentControl oggetto per proteggere una parte di un documento, vedere Controlli contenuto.

Per impedire agli utenti di modificare la tabella dei dipendenti

  1. Aggiungere il codice seguente al metodo ThisDocument_Startup della classe ThisDocument dopo il codice aggiunto nel passaggio precedente. Questo codice impedisce agli utenti di modificare la tabella dei dipendenti inserendo la tabella all'interno dell'oggetto GroupContentControl dichiarato in precedenza.

    this.Tables[1].Range.Select();
    groupControl1 = this.Controls.AddGroupContentControl("groupControl1");
    

Aggiungere le tabelle all'insieme di blocchi predefiniti

Aggiungere le tabelle a una raccolta di blocchi predefiniti del documento nel modello in modo che gli utenti possano inserire le tabelle create all'interno di quel documento. Per altre informazioni sui blocchi predefiniti dei documenti, vedere Controlli contenuto.

Per aggiungere le tabelle ai blocchi predefiniti nel modello

  1. Aggiungere il codice seguente al metodo ThisDocument_Startup della classe ThisDocument dopo il codice aggiunto nel passaggio precedente. Questo codice aggiunge nuovi blocchi predefiniti che contengono le tabelle all'insieme Microsoft.Office.Interop.Word.BuildingBlockEntries, che contiene tutti i blocchi predefiniti riutilizzabili nel modello. I nuovi blocchi predefiniti sono definiti in una nuova categoria denominata Employee e Customer Information e vengono assegnati al tipo di Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1blocco predefinito .

    Word.Template template1 = this.AttachedTemplate as Word.Template;
    
    if (template1 != null)
    {
        object description = null;
        template1.BuildingBlockEntries.Add("Employee Table",
            Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information",
            this.Tables[1].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent);
        template1.BuildingBlockEntries.Add("Customer Table",
            Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information",
            this.Tables[2].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent);
    }
    
  2. Aggiungere il codice seguente al metodo ThisDocument_Startup della classe ThisDocument dopo il codice aggiunto nel passaggio precedente. Questo codice elimina le tabelle dal modello. Le tabelle non sono più necessarie perché sono state aggiunte alla raccolta di blocchi predefiniti riutilizzabili nel modello. Il codice passa innanzitutto il documento in modalità progettazione in modo che la tabella dei dipendenti protetta possa essere eliminata.

    if (!this.FormsDesign)
    {
        this.ToggleFormsDesign();
    }
    this.Tables[2].Delete();
    this.Tables[1].Delete();
    this.ToggleFormsDesign();
    

Creare un controllo contenuto che visualizza i blocchi predefiniti

Creare un controllo contenuto che fornisca l'accesso ai blocchi predefiniti (ossia, alle tabelle) create in precedenza. Gli utenti possono selezionare questo controllo per aggiungere le tabelle al documento.

Per creare un controllo contenuto che visualizza i blocchi predefiniti

  1. Aggiungere il codice seguente al metodo ThisDocument_Startup della classe ThisDocument dopo il codice aggiunto nel passaggio precedente. Il codice inizializza l'oggetto BuildingBlockGalleryContentControl dichiarato in precedenza. BuildingBlockGalleryContentControl Visualizza tutti i blocchi predefiniti definiti nella categoria Employee e Customer Information e che hanno il tipo di Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1blocco predefinito .

    buildingBlockControl1 = this.Controls.AddBuildingBlockGalleryContentControl(
        this.Paragraphs[1].Range, "buildingBlockControl1");
    buildingBlockControl1.BuildingBlockCategory = "Employee and Customer Information";
    buildingBlockControl1.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1;
    buildingBlockControl1.PlaceholderText = "Choose your first building block";
    
    buildingBlockControl2 = this.Controls.AddBuildingBlockGalleryContentControl(
        this.Paragraphs[2].Range, "buildingBlockControl2");
    buildingBlockControl2.BuildingBlockCategory = "Employee and Customer Information";
    buildingBlockControl2.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1;
    buildingBlockControl2.PlaceholderText = "Choose your second building block";
    

Testare il progetto

Gli utenti possono fare clic sui controlli della raccolta di blocchi predefiniti nel documento per inserire la tabella dei dipendenti o la tabella dei suggerimenti dei clienti. Gli utenti possono digitare o selezionare le risposte nei controlli contenuto in entrambe le tabelle. Gli utenti possono modificare altre parti della tabella dei suggerimenti dei clienti, ma non devono poter modificare altre parti della tabella dei dipendenti.

Per testare la tabella dei dipendenti

  1. Premere F5 per eseguire il progetto.

  2. Fare clic su Scegli il primo blocco predefinito per visualizzare il primo controllo contenuto della raccolta blocchi predefiniti.

  3. Fare clic sulla freccia a discesa accanto all'intestazione Raccolta personalizzata 1 nel controllo e selezionare Tabella dipendenti.

  4. Fare clic nella cella a destra della cella Nome dipendente e digitare un nome.

    Verificare di poter aggiungere solo testo alla cella. PlainTextContentControl consente agli utenti di aggiungere solo testo, non altri tipi di contenuto, ad esempio grafici o tabelle.

  5. Fare clic nella cella a destra della cella Hire Date e selezionare una data nella selezione data.

  6. Fare clic nella cella a destra della cella Titolo e selezionare uno dei titoli dei processi nella casella combinata.

    Facoltativamente, digitare il nome di un titolo professionale non presente nell'elenco. ComboBoxContentControl, infatti, consente agli utenti di effettuare una selezione da un elenco di voci oppure di digitare le voci personalizzate.

  7. Fare clic sull'icona nella cella a destra della cella Immagine e passare a un'immagine per visualizzarla.

  8. Provare ad aggiungere e quindi a eliminare le righe o le colonne dalla tabella. Verificare che non sia possibile modificare la tabella. GroupContentControl impedisce di apportare modifiche.

Per testare la tabella dei suggerimenti dei clienti

  1. Fare clic su Scegli il secondo blocco predefinito per visualizzare il secondo controllo contenuto della raccolta blocchi predefiniti.

  2. Fare clic sulla freccia a discesa accanto all'intestazione Raccolta personalizzata 1 nel controllo e selezionare Tabella clienti.

  3. Fare clic nella cella a destra della cella Nome cliente e digitare un nome.

  4. Fare clic nella cella a destra della cella Satisfaction Rating (Valutazione soddisfazione) e selezionare una delle opzioni disponibili.

    Verificare che non sia possibile digitare una voce personalizzata. DropDownListContentControl consente di selezionare solo da un elenco di voci.

  5. Fare clic nella cella a destra della cella Comments e digitare alcuni commenti.

    Facoltativamente, aggiungere alcuni contenuti diversi dal testo, ad esempio un grafico o una tabella incorporata. RichTextContentControl consente, infatti, agli utenti di aggiungere contenuti diversi dal testo.

  6. Verificare di poter aggiungere e quindi eliminare le righe o le colonne dalla tabella. Ciò è possibile perché la tabella non è stata protetta inserendola in GroupContentControl.

  7. Chiudere il modello.

Passaggi successivi

Per altre informazioni sull'utilizzo dei controlli contenuto, vedere l'argomento seguente: