Udostępnij za pośrednictwem


Omówienie okienka akcji

Ważne

Funkcja Akcji została wycofana z Microsoft Word, począwszy od Office 2024. Ta funkcja jest dostępna tylko w programie Microsoft Word w następujących wersjach pakietu Office:

  • Microsoft 365
  • Pakiet Office LTSC Professional Plus 2021
  • Pakiet Office LTSC Standard 2021
  • Office Professional Plus 2016, 2019
  • Pakiet Office Standard 2016, 2019

Okienko akcji to dostosowywalne okienko zadań Akcje dokumentu , które jest dołączone do określonego dokumentu programu Microsoft Office Word lub skoroszytu programu Microsoft Office Excel. Okienko akcji jest hostowane w okienku zadań pakietu Office wraz z innymi wbudowanymi okienkami zadań, takimi jak okienko zadań Źródło XML w programie Excel lub okienko zadań Style i formatowanie w programie Word. Za pomocą kontrolek Windows Forms lub kontrolek WPF można zaprojektować interfejs użytkownika okienka akcji.

Dotyczy: Informacje w tym temacie dotyczą projektów na poziomie dokumentów dla Excel i Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne według aplikacji Office i rodzaju projektu.

Okienko akcji można utworzyć tylko w ramach dostosowania na poziomie dokumentu dla programu Word lub Excel. Nie można utworzyć okienka akcji w dodatku VSTO. Aby uzyskać więcej informacji, zobacz Funkcje dostępne według aplikacji Office i rodzaju projektu.

Uwaga

Okienko akcji różni się od niestandardowych okienek zadań. Niestandardowe okienka zadań są skojarzone z aplikacją, a nie z konkretnym dokumentem. W dodatkach VSTO można tworzyć niestandardowe okienka zadań dla niektórych aplikacji pakietu Microsoft Office. Aby uzyskać więcej informacji, zobacz Niestandardowe okienka zadań.

Wyświetlanie okienka akcji

Okienko akcji jest reprezentowane przez klasę ActionsPane . Podczas tworzenia projektu na poziomie dokumentu wystąpienie tej klasy jest dostępne dla kodu przy użyciu ActionsPane pola ThisWorkbook (dla programu Excel) lub ThisDocument (dla programu Word) klasy w projekcie. Aby wyświetlić okienko akcji, dodaj kontrolkę Windows Forms do Controls właściwości ActionsPane pola. Poniższy przykład kodu dodaje kontrolkę o nazwie actions do okienka akcji.

this.ActionsPane.Controls.Add(actions);

Okienko akcji staje się widoczne w czasie wykonywania, gdy tylko jawnie dodasz do niego kontrolkę. Po wyświetleniu okienka akcji można dynamicznie dodawać lub usuwać kontrolki w odpowiedzi na akcje użytkownika. Zazwyczaj dodaje się kod, aby wyświetlić okienko akcji w Startup programie ThisDocument obsługi zdarzeń lub ThisWorkbook tak, aby okienko akcji było widoczne, gdy użytkownik po raz pierwszy otworzy dokument. Można jednak wyświetlić okienko akcji tylko w odpowiedzi na akcję użytkownika w dokumencie. Na przykład można dodać kod do Click zdarzenia formantu w dokumencie.

Dodawanie wielu kontrolek do okienka akcji

Po dodaniu wielu kontrolek do okienka akcji należy zgrupować kontrolki w kontrolce użytkownika, a następnie dodać kontrolkę użytkownika do Controls właściwości. Ten proces obejmuje następujące kroki:

  1. Utwórz interfejs użytkownika (UI) okienka akcji, dodając do projektu kontrolkę okienka akcji lub element Kontrolka użytkownika . Oba te elementy zawierają niestandardową klasę Windows Forms UserControl . Elementy Kontrolka okienka akcji i Kontrolka użytkownika są równoważne; Jedyną różnicą jest ich nazwa.

  2. Dodaj kontrolki Windows Forms do elementu UserControl przy użyciu projektanta lub przez napisanie kodu.

    Uwaga

    Możesz również dodać kontrolki WPF do okienka akcji, dodając WPF UserControl do Windows Forms UserControl. Aby uzyskać więcej informacji, zobacz Używanie formantów WPF w rozwiązaniach pakietu Office.

  3. Dodaj wystąpienie niestandardowej kontrolki użytkownika do kontrolek, które znajdują się w ActionsPane polu ThisWorkbook klasy (dla programu Excel) lub ThisDocument (dla programu Word) w projekcie.

    Aby zapoznać się z przykładami, które bardziej szczegółowo ilustrują ten proces, zobacz Porady: dodawanie okienka akcji do dokumentów programu Word lub skoroszytów programu Excel.

Ukrywanie okienka akcji

ActionsPane Mimo że klasa ma Hide metodę i Visible właściwość, nie można usunąć okienka akcji z interfejsu użytkownika przy użyciu żadnych elementów członkowskich ActionsPane samej klasy. Wywołanie Hide metody lub ustawienie właściwości na Visiblewartość false powoduje ukrycie tylko formantów w okienku akcji, ale nie powoduje ukrycia okienka zadań.

Aby ukryć okienko zadań w rozwiązaniu, dostępnych jest kilka opcji:

  • W przypadku programu Word należy ustawić Visible właściwość TaskPane obiektu reprezentującego okienko zadań Akcje dokumentu na wartość false. Poniższy przykład kodu jest przeznaczony do uruchomienia z ThisDocument klasy w projekcie.

    this.Application.TaskPanes[Word.WdTaskPanes.wdTaskPaneDocumentActions].Visible = false;
    
  • W przypadku programu Excel ustaw DisplayDocumentActionTaskPane właściwość obiektu na Applicationwartość false. Poniższy przykład kodu jest przeznaczony do uruchomienia z ThisWorkbook klasy w projekcie.

    this.Application.DisplayDocumentActionTaskPane = false;
    
  • W przypadku programu Word lub Excel można alternatywnie Visible ustawić właściwość paska poleceń reprezentującego okienko zadań na wartość false. Poniższy przykład kodu jest przeznaczony do uruchomienia z ThisDocument klasy or ThisWorkbook w projekcie.

    this.Application.CommandBars["Task Pane"].Visible = false;
    

Czyszczenie okienka akcji po otwarciu dokumentu

Gdy użytkownik zapisuje dokument, gdy okienko akcji jest widoczne, okienko akcji jest widoczne za każdym razem, gdy dokument jest otwierany, niezależnie od tego, czy okienko akcji zawiera jakiekolwiek formanty. Jeśli chcesz kontrolować, kiedy jest wyświetlany, wywołaj Clear metodę pola ActionsPane w procedurze StartupThisDocument obsługi zdarzeń lub ThisWorkbook , aby upewnić się, że okienko akcji nie jest widoczne po otwarciu dokumentu.

Określanie, kiedy okienko akcji jest zamknięte

Nie ma żadnego zdarzenia, które jest wywoływane po zamknięciu okienka akcji. ActionsPane Mimo że klasa ma VisibleChanged zdarzenie, to zdarzenie nie jest wywoływane, gdy użytkownik końcowy zamyka okienko akcji. Zamiast tego to zdarzenie jest wywoływane, gdy kontrolki w okienku akcji są ukryte przez wywołanie Hide metody lub ustawienie Visible właściwości na wartość false.

Gdy użytkownik zamknie okienko akcji, może je ponownie wyświetlić, wykonując jedną z poniższych procedur w interfejsie użytkownika aplikacji.

Aby wyświetlić okienko akcji przy użyciu interfejsu użytkownika programu Word lub Excel
  1. Na Wstążce kliknij kartę Widok .

  2. W grupie Pokazywanie/ukrywanie kliknij przełącznik Akcje dokumentu .

Zdarzenia okienka akcji programu

Do okienka akcji można dodać wiele kontrolek użytkownika, a następnie napisać kod, który będzie reagował na zdarzenia w dokumencie, pokazując i ukrywając kontrolki użytkownika. Jeśli odwzorowujesz elementy schematu XML na dokument, możesz wyświetlać określone formanty użytkownika w okienku akcji za każdym razem, gdy punkt wstawiania znajduje się wewnątrz jednego z elementów XML. Aby uzyskać więcej informacji, zobacz Porady: mapowanie schematów na dokumenty programu Word w programie Visual Studio i Porady: mapowanie schematów do arkuszy w programie Visual Studio.

Można również napisać kod, który będzie reagował na zdarzenia dowolnego obiektu, w tym zdarzenia kontrolki hosta, aplikacji lub dokumentu. Aby uzyskać więcej informacji, zobacz Przewodnik: Programowanie względem zdarzeń kontrolki NamedRange.

Wiązanie danych z formantami w okienku akcji

Formanty w okienku akcji mają takie same możliwości powiązania danych jak kontrolki w Windows Forms. Formanty można powiązać ze źródłami danych, takimi jak zestawy danych, zestawy danych z typami i kod XML. Aby uzyskać więcej informacji, zobacz Powiązanie danych i Windows Forms.

Formanty w okienku akcji i formanty w dokumencie można powiązać z tym samym zestawem danych. Można na przykład utworzyć relację wzorzec/szczegół między formantami w okienku akcji a formantami w arkuszu. Aby uzyskać więcej informacji, zobacz Przewodnik: Wiązanie danych z formantami w okienku akcji programu Excel.

Weryfikowanie danych w formantach okienka akcji

Jeśli zostanie wyświetlone okno komunikatu w procedurze Validating obsługi zdarzeń formantu w okienku akcji, zdarzenie może zostać wywołane po raz drugi, gdy fokus zostanie przeniesiony z formantu do okna komunikatu. Aby zapobiec temu problemowi, użyj kontrolki w celu wyświetlenia wszelkich komunikatów o błędach sprawdzania ErrorProvider poprawności.

Kolejność układania kontroli użytkownika

Jeśli używasz wielu kontrolek użytkownika, możesz napisać kod, aby prawidłowo ułożyć kontrolki użytkownika w okienku akcji, niezależnie od tego, czy jest ono zadokowane w pionie, czy w poziomie. Kolejność stosowania kontrolek użytkownika w okienku akcji można ustawić przy użyciu StackStyle wyliczenia StackOrder właściwości. Aby uzyskać więcej informacji, zobacz Porady: zarządzanie układem formantu w okienkach akcji.

Właściwość StackOrder może przyjmować następujące StackStyle wartości wyliczenia.

Styl układania w stos Definicja
OdDół Ułóż stos u dołu okienka akcji.
OdLewy Stos od lewej strony okienka akcji.
OdPrawy Stos z prawej strony okienka akcji.
OdDo góry Ułóż stos od góry okienka akcji.
Żaden Nie zdefiniowano kolejności układania; Zamówienie jest kontrolowane przez dewelopera.

Poniższy kod ustawia StackOrder właściwość tak, aby stos kontrolek użytkownika znajdował się w górnej części okienka akcji.

this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop;

Kontrolki zakotwiczenia

Jeśli użytkownik zmieni rozmiar okienka akcji w czasie wykonywania, kontrolki mogą zmienić rozmiar za pomocą okienka akcji. Za pomocą Anchor właściwości kontrolki Windows Forms można zakotwiczyć kontrolki w okienku akcji. W ten sam sposób można również zakotwiczyć kontrolki Windows Forms w kontrolce użytkownika. Aby uzyskać więcej informacji, zobacz Porady: zakotwiczenie kontrolek w Windows Forms.

Zmienianie rozmiaru okienka akcji

Nie można bezpośrednio zmienić rozmiaru elementu, ActionsPane ponieważ jest on ActionsPane osadzony w okienku zadań. Można jednak programowo zmienić szerokość okienka zadań, ustawiając Width właściwość reprezentującą CommandBar okienko zadań. Wysokość okienka zadań można zmienić, jeśli jest ono zadokowane w poziomie lub ruchome.

Programowa zmiana rozmiaru okienka zadań nie jest zalecana, ponieważ użytkownik powinien mieć możliwość wybrania rozmiaru okienka zadań, który najlepiej odpowiada jego potrzebom. Jeśli jednak zachodzi potrzeba zmiany szerokości okienka zadań, można użyć poniższego kodu, aby wykonać to zadanie.

this.CommandBars["Task Pane"].Width = 200;

Zmienianie położenia okienka akcji

Nie można bezpośrednio zmienić położenia, ActionsPane ponieważ jest on osadzony w okienku zadań. Można jednak programowo przenieść okienko zadań, ustawiając Position właściwość reprezentującą CommandBar okienko zadań.

Programowa zmiana położenia okienka zadań nie jest zalecana, ponieważ użytkownik powinien mieć możliwość wybrania pozycji okienka zadań na ekranie, która najlepiej odpowiada jego potrzebom. Jeśli jednak konieczne jest przeniesienie okienka zadań w określone miejsce, można użyć poniższego kodu, aby wykonać to zadanie.

this.CommandBars["Task Pane"].Position =
    Microsoft.Office.Core.MsoBarPosition.msoBarLeft;

Uwaga

Użytkownicy końcowi mogą w dowolnym momencie ręcznie zmienić położenie okienka zadań. Nie ma sposobu, aby upewnić się, że okienko zadań pozostanie zadokowane w pozycji wskazanej programowo. Można jednak sprawdzić, czy orientacja uległa zmianie, i upewnić się, że kontrolki w okienku akcji są ułożone we właściwym kierunku. Aby uzyskać więcej informacji, zobacz Porady: zarządzanie układem formantu w okienkach akcji.

Ustawienie Top właściwości ActionsPane i Left obiektu nie powoduje zmiany jego położenia, ActionsPane ponieważ obiekt jest osadzony w okienku zadań.

Jeśli okienko zadań nie jest zadokowane, można ustawić Top właściwości CommandBar i Left obszaru reprezentującego okienko zadań. Poniższy kod przenosi niezadokowane okienko zadań do lewego górnego rogu dokumentu.

if (this.CommandBars["Task Pane"].Position == 
    Microsoft.Office.Core.MsoBarPosition.msoBarFloating)
{
    this.CommandBars["Task Pane"].Top = 0;
    this.CommandBars["Task Pane"].Left = 0;
}