Udostępnij za pośrednictwem


Przewodnik: tworzenie szablonu przy użyciu kontrolek zawartości

W tym przewodniku pokazano, jak utworzyć dostosowanie na poziomie dokumentu, które używa kontrolek zawartości do tworzenia zawartości ustrukturyzowanej i wielokrotnego użytku w szablonie programu Microsoft Office Word.

Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu dla programu Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.

Program Word umożliwia utworzenie kolekcji części dokumentów wielokrotnego użytku, nazwanych blokami konstrukcyjnymi. W tym przewodniku pokazano, jak utworzyć dwie tabele jako bloki konstrukcyjne. Każda tabela zawiera kilka kontrolek zawartości, które mogą przechowywać różne typy zawartości, takie jak zwykły tekst lub daty. Jedna z tabel zawiera informacje o pracowniku, a druga tabela zawiera opinie klientów.

Po utworzeniu dokumentu na podstawie szablonu można dodać jedną z tabel do dokumentu przy użyciu kilku BuildingBlockGalleryContentControl obiektów, które wyświetlają dostępne bloki konstrukcyjne w szablonie.

W instruktażu przedstawiono następujące zagadnienia:

  • Tworzenie tabel zawierających kontrolki zawartości w szablonie programu Word w czasie projektowania.

  • Programowe wypełnianie kontrolki zawartości pola kombi i kontrolki zawartości listy rozwijanej.

  • Uniemożliwianie użytkownikom edytowania określonej tabeli.

  • Dodawanie tabel do kolekcji bloków konstrukcyjnych szablonu.

  • Tworzenie kontrolki zawartości, która wyświetla dostępne bloki konstrukcyjne w szablonie.

    Uwaga

    Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.

Wymagania wstępne

Następujące składniki są wymagane do przeprowadzenia tego instruktażu:

Tworzenie nowego projektu szablonu programu Word

Utwórz szablon programu Word, aby użytkownicy mogli łatwo tworzyć własne kopie.

Aby utworzyć nowy projekt szablonu programu Word

  1. Utwórz projekt szablonu programu Word o nazwie MyBuildingBlockTemplate. W kreatorze utwórz nowy dokument w rozwiązaniu. Aby uzyskać więcej informacji, zobacz How to: Create Office projects in Visual Studio (Jak tworzyć projekty pakietu Office w programie Visual Studio).

    Program Visual Studio otwiera nowy szablon programu Word w projektancie i dodaje projekt MyBuildingBlockTemplate do Eksplorator rozwiązań.

Tworzenie tabeli pracowników

Utwórz tabelę zawierającą cztery różne typy kontrolek zawartości, w których użytkownik może wprowadzić informacje o pracowniku.

Aby utworzyć tabelę pracowników

  1. W szablonie programu Word hostowanym w projektancie programu Visual Studio na wstążce kliknij kartę Wstawianie .

  2. W grupie Tabele kliknij pozycję Tabela i wstaw tabelę z dwiema kolumnami i czterema wierszami.

  3. Wpisz tekst w pierwszej kolumnie, tak aby przypominał następującą kolumnę:

    Imię i nazwisko pracownika
    Data zatrudnienia
    Tytuł
    Obraz
  4. Kliknij pierwszą komórkę w drugiej kolumnie (obok pozycji Nazwa pracownika).

  5. Na wstążce kliknij kartę Deweloper .

    Uwaga

    Jeśli karta Deweloper nie jest widoczna, musisz go najpierw wyświetlić. Aby uzyskać więcej informacji, zobacz Instrukcje: pokazywanie karty dewelopera na wstążce.

  6. W grupie Kontrolki kliknij przycisk Tekst, aby dodać PlainTextContentControl elementPlainTextContentControl do pierwszej komórki.

  7. Kliknij drugą komórkę w drugiej kolumnie (obok pozycji Data zatrudnienia).

  8. W grupie Kontrolki kliknij przycisk DatePickerContentControl Selektor dat, aby dodać element DatePickerContentControl do drugiej komórki.

  9. Kliknij trzecią komórkę w drugiej kolumnie (obok pozycji Tytuł).

  10. W grupie Kontrolki kliknij przycisk ComboBoxContentControl Pole kombi, aby dodać element ComboBoxContentControl do trzeciej komórki.

  11. Kliknij ostatnią komórkę w drugiej kolumnie (obok pozycji Obraz).

  12. W grupie Kontrolki kliknij przycisk Kontrolka zawartości obrazu, aby dodać obiekt PictureContentControlPictureContentControl do ostatniej komórki.

Tworzenie tabeli opinii klientów

Utwórz tabelę zawierającą trzy różne typy kontrolek zawartości, w których użytkownik może wprowadzić informacje o opiniach klientów.

Aby utworzyć tabelę opinii klientów

  1. W szablonie programu Word kliknij wiersz po dodanej wcześniej tabeli pracownika, a następnie naciśnij klawisz Enter , aby dodać nowy akapit.

  2. Na wstążce kliknij kartę Wstawianie .

  3. W grupie Tabele kliknij pozycję Tabela i wstaw tabelę z dwiema kolumnami i trzema wierszami.

  4. Wpisz tekst w pierwszej kolumnie, tak aby przypominał następującą kolumnę:

    Nazwa klienta
    Ocena zadowolenia
    Komentarze
  5. Kliknij pierwszą komórkę drugiej kolumny (obok pozycji Nazwa klienta).

  6. Na wstążce kliknij kartę Deweloper .

  7. W grupie Kontrolki kliknij przycisk Tekst, aby dodać PlainTextContentControl elementPlainTextContentControl do pierwszej komórki.

  8. Kliknij drugą komórkę drugiej kolumny (obok pozycji Ocena satysfakcji).

  9. W grupie Kontrolki kliknij przycisk Lista rozwijana, aby dodać element DropDownListContentControl DropDownListContentControl do drugiej komórki.

  10. Kliknij ostatnią komórkę drugiej kolumny (obok pozycji Komentarze).

  11. W grupie Kontrolki kliknij przycisk Tekst sformatowany, aby dodać RichTextContentControl elementRichTextContentControl do ostatniej komórki.

Programowe wypełnianie pola kombi i listy rozwijanej

Kontrolki zawartości można zainicjować w czasie projektowania przy użyciu okna Właściwości w programie Visual Studio. Można je również zainicjować w czasie wykonywania, co umożliwia dynamiczne ustawianie ich stanów początkowych. W tym przewodniku użyj kodu, aby wypełnić wpisy w ComboBoxContentControl czasie wykonywania i DropDownListContentControl , aby zobaczyć, jak działają te obiekty.

Aby programowo zmodyfikować interfejs użytkownika kontrolek zawartości

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy plik ThisDocument.cs lub ThisDocument.vb, a następnie kliknij polecenie Wyświetl kod.

  2. Dodaj poniższy kod do klasy ThisDocument. Ten kod deklaruje kilka obiektów, które będą używane w dalszej części tego przewodnika.

    private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl2;
    
  3. Dodaj następujący kod do ThisDocument_Startup metody ThisDocument klasy . Ten kod dodaje wpisy do ComboBoxContentControl tabel i DropDownListContentControl i i ustawia tekst zastępczy wyświetlany w każdej z tych kontrolek przed ich edycją.

    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);
    

Uniemożliwianie użytkownikom edytowania tabeli pracowników

GroupContentControl Użyj obiektu zadeklarowany wcześniej, aby chronić tabelę pracowników. Po ochronie tabeli użytkownicy nadal mogą edytować kontrolki zawartości w tabeli. Nie mogą jednak edytować tekstu w pierwszej kolumnie ani modyfikować tabeli na inne sposoby, takie jak dodawanie lub usuwanie wierszy i kolumn. Aby uzyskać więcej informacji na temat sposobu używania obiektu GroupContentControl do ochrony części dokumentu, zobacz Kontrolki zawartości.

Aby uniemożliwić użytkownikom edytowanie tabeli pracowników

  1. Dodaj następujący kod do ThisDocument_Startup metody ThisDocument klasy po kodzie dodanym w poprzednim kroku. Ten kod uniemożliwia użytkownikom edytowanie tabeli pracowników przez umieszczenie tabeli wewnątrz zadeklarowanego GroupContentControl wcześniej obiektu.

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

Dodawanie tabel do kolekcji bloków konstrukcyjnych

Dodaj tabele do kolekcji bloków konstrukcyjnych dokumentu w szablonie, aby umożliwić użytkownikom wstawianie tabel utworzonych w dokumencie. Aby uzyskać więcej informacji na temat bloków konstrukcyjnych dokumentu, zobacz Kontrolki zawartości.

Aby dodać tabele do bloków konstrukcyjnych w szablonie

  1. Dodaj następujący kod do ThisDocument_Startup metody ThisDocument klasy po kodzie dodanym w poprzednim kroku. Ten kod dodaje nowe bloki konstrukcyjne zawierające tabele do kolekcji Microsoft.Office.Interop.Word.BuildingBlockEntries, która zawiera wszystkie bloki konstrukcyjne wielokrotnego użytku w szablonie. Nowe bloki konstrukcyjne są definiowane w nowej kategorii o nazwie Employee (Pracownik) i Customer Information (Informacje o kliencie) i mają przypisany typ Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1bloku konstrukcyjnego .

    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. Dodaj następujący kod do ThisDocument_Startup metody ThisDocument klasy po kodzie dodanym w poprzednim kroku. Ten kod usuwa tabele z szablonu. Tabele nie są już niezbędne, ponieważ zostały dodane do galerii bloków konstrukcyjnych wielokrotnego użytku w szablonie. Kod najpierw umieszcza dokument w trybie projektowania, aby można było usunąć chronioną tabelę pracowników.

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

Tworzenie kontrolki zawartości, która wyświetla bloki konstrukcyjne

Utwórz kontrolkę zawartości, która zapewnia dostęp do bloków konstrukcyjnych (czyli tabel), które zostały utworzone wcześniej. Użytkownicy mogą kliknąć tę kontrolkę, aby dodać tabele do dokumentu.

Aby utworzyć kontrolkę zawartości wyświetlającą bloki konstrukcyjne

  1. Dodaj następujący kod do ThisDocument_Startup metody ThisDocument klasy po kodzie dodanym w poprzednim kroku. Ten kod inicjuje BuildingBlockGalleryContentControl zadeklarowany wcześniej obiekt. Zostaną BuildingBlockGalleryContentControl wyświetlone wszystkie bloki konstrukcyjne zdefiniowane w kategorii Employee (Pracownik) i Customer Information (Informacje o kliencie) oraz o typie Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1bloku konstrukcyjnego .

    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";
    

Testowanie projektu

Użytkownicy mogą kliknąć kontrolki galerii bloków konstrukcyjnych w dokumencie, aby wstawić tabelę pracowników lub tabelę opinii klientów. Użytkownicy mogą wpisywać lub wybierać odpowiedzi w kontrolkach zawartości w obu tabelach. Użytkownicy mogą modyfikować inne części tabeli opinii klientów, ale nie powinni mieć możliwości modyfikowania innych części tabeli pracowników.

Aby przetestować tabelę pracowników

  1. Naciśnij klawisz F5 , aby uruchomić projekt.

  2. Kliknij pozycję Wybierz pierwszy blok konstrukcyjny, aby wyświetlić pierwszą kontrolkę zawartości galerii bloków konstrukcyjnych.

  3. Kliknij strzałkę listy rozwijanej obok nagłówka Galeria niestandardowa 1 w kontrolce, a następnie wybierz pozycję Tabela pracowników.

  4. Kliknij komórkę po prawej stronie komórki Nazwa pracownika i wpisz nazwę.

    Sprawdź, czy możesz dodać tylko tekst do tej komórki. Umożliwia PlainTextContentControl użytkownikom dodawanie tylko tekstu, a nie innych typów zawartości, takich jak sztuka lub tabela.

  5. Kliknij komórkę z prawej strony komórki Data zatrudnienia i wybierz datę w selektorze dat.

  6. Kliknij komórkę po prawej stronie komórki Tytuł i wybierz jeden z tytułów zadań w polu kombi.

    Opcjonalnie wpisz nazwę stanowiska, który nie znajduje się na liście. Jest to możliwe, ponieważ ComboBoxContentControl program umożliwia użytkownikom wybór z listy wpisów lub wpisywanie własnych wpisów.

  7. Kliknij ikonę w komórce po prawej stronie komórki Obraz i przejdź do obrazu, aby go wyświetlić.

  8. Spróbuj dodać wiersze lub kolumny do tabeli i spróbować usunąć wiersze i kolumny z tabeli. Sprawdź, czy nie można zmodyfikować tabeli. Element GroupContentControl uniemożliwia wprowadzanie żadnych modyfikacji.

Aby przetestować tabelę opinii klientów

  1. Kliknij pozycję Wybierz drugi blok konstrukcyjny, aby wyświetlić drugą kontrolkę zawartości galerii bloków konstrukcyjnych.

  2. Kliknij strzałkę listy rozwijanej obok nagłówka Galeria niestandardowa 1 w kontrolce, a następnie wybierz pozycję Tabela klienta.

  3. Kliknij komórkę po prawej stronie komórki Nazwa klienta i wpisz nazwę.

  4. Kliknij komórkę z prawej strony komórki Ocena satysfakcji i wybierz jedną z dostępnych opcji.

    Sprawdź, czy nie możesz wpisać własnego wpisu. Ustawienie umożliwia DropDownListContentControl użytkownikom wybranie tylko z listy wpisów.

  5. Kliknij komórkę po prawej stronie komórki Komentarze i wpisz komentarze.

    Opcjonalnie dodaj zawartość inną niż tekst, taką jak grafika lub tabela osadzona. Jest to możliwe, ponieważ RichTextContentControl program umożliwia użytkownikom dodawanie zawartości innego niż tekst.

  6. Sprawdź, czy możesz dodawać wiersze lub kolumny do tabeli oraz czy można usunąć wiersze i kolumny z tabeli. Jest to możliwe, ponieważ tabela nie jest chroniona przez umieszczenie jej w obiekcie GroupContentControl.

  7. Zamknij szablon.

Następne kroki

Więcej informacji na temat używania kontrolek zawartości można dowiedzieć się z tego tematu: