Követelmények: A VSTO-t használd egy egyszerű Office plugin fejlesztéséhez, például a Word Chinese karakterhosszú bővítmény megszerzésével.
Word objektummodell
A Word több száz tárgyat kínál, amivel interakcióba léphetünk. Ezek az objektumok hierarchiában vannak szervezve, amely szigorúan követi a felhasználói felületet. Az Alkalmazás objektum a hierarchia tetején van. Ez az objektum a Word jelenlegi példányát képviseli. Az Alkalmazás objektum tartalmazza a Dokumentum, Kiválasztás, Könyvjelző és Tartomány objektumokat. Mindegyik objektumnak számos módszere és tulajdonsága van, amelyek segítségével manipulálható és interakcióba léphetett az objektummal.
A következő kép ezeknek az objektumoknak a Word objektummodell hierarchiájában látható nézetet.
Dokumentáció:A hiperlink bejelentkezés látható.
Alkalmazásobjektum
Az Alkalmazás objektum a Word alkalmazást képviseli, és minden más objektum szülője. Tagjai általában a Word egészére vonatkoznak. Használhatod a tulajdonságait és módszereit a Word környezetének vezérlésére.
Egy VSTO bővítmény projektben az Alkalmazásosztály alkalmazásmezői segítségével elérheted a ThisAddIn objektumot.
Egy dokumentumszintű projektben a ThisDocument objektum elérhető az Application osztály Application tulajdonságával.
Dokumentumobjektum
A Dokumentum objektum a Word programozás központja. Egy dokumentumot és annak minden tartalmát képviseli. Amikor megnyitsz egy dokumentumot vagy új dokumentumot hozol létre, egy új Dokumentum objektum keletkezik, amely hozzáadódik a Dokumentumok objektum alkalmazásgyűjteményéhez. Egy fókuszú dokumentumot aktív dokumentumnak nevezünk. Az ActiveDocument objektum Application tulajdonsága képviseli.
Amikor dokumentumszintű projektet hozol létre, a projektben generált Document osztály segítségével elérheted a ThisDocument tagot. A ThisDocument objektum elérhető a Me vagy a Document osztály kódkódjának kulcsszava, vagy a Globals.ThisDocument kód használatával a ThisDocument osztályon kívüli kódhoz.
Kiválasztási objektum
A Selection objektum a jelenleg kiválasztott régiót képviseli. Amikor a Word felhasználói felületén végrehajtunk egy műveletet, például a szöveget félkövérrel jelölve, kiválaszthatod vagy kiemelheted a szöveget, majd alkalmazhatod a formázást. A Selection objektum mindig jelen van a dokumentumban. Ha semmit sem jelölnek, az beillesztési pontot jelöl. Ezen felül a kiválasztott tartalom több nem szomszédos szövegblokkot is tartalmazhat.
Távolságobjektum
A Range objektum a dokumentumban a szomszédos területeket képviseli, és a kezdő és végi karakterpozíciók határozzák meg. Nem egyetlen Range objektumra korlátozódik. Ugyanabban a dokumentumban több Range objektumot is definiálhatsz. A távolsági objektumok a következő jellemzőkkel rendelkeznek:
- Csak egyes beillesztési pontokat tartalmazhat, vagy akár egy szövegtartományt, akár az egész dokumentumot.
- Tartalmaz nem nyomtatott karaktereket, mint például szóközek, fülek és bekezdésjelzők.
- Lehet az a terület, amelyet a jelenleg kiválasztott tartalom képvisel, vagy az a terület, amely eltér ettől a tartalomtól.
- Nem látható a dokumentumban, ellentétben a kiválasztott tartalommal, amely mindig látható.
- Nem menti el a dokumentációval, csak akkor létezik, amikor a kód fut.
- Amikor szöveget a tartomány végére helyeznek be, a Word automatikusan kibővíti a tartományt, hogy tartalmazza a beillesztett szöveget.
Tartalomvezérlő objektumok (tartalomvezérlő objektumok)
A ContentControl lehetőséget kínál a szöveg és más típusú tartalom bemenetének és megjelenítésének vezérlésére egy Word dokumentumban. A ContentControl sokféle felhasználói felületet tud megjeleníteni, amelyek Word dokumentumokhoz optimalizáltak, például többüzenetes szövegvezérlőket, dátumválasztókat vagy kombó dobozokat. A ContentControl segítségével megakadályozhatod a felhasználókat bizonyos dokumentum vagy sablon részeinek szerkesztésében.
A Visual Studio a ContentControl objektumot több különböző host vezérlőre bővíti. Míg a ContentControl objektum minden különböző típusú felhasználói felületet jelenít meg a tartalomvezérléshez, a Visual Studio minden tartalomvezérlőhöz külön típust kínál. Például a RichTextContentControl segítségével létrehozhatsz többüzenetes szövegvezérlőt, vagy a DatePickerContentControl segítségével dátumválasztót létrehozhatsz. Ezek a hosztkezelők hasonlóan viselkednek a natív ContentControls-hoz, de további esemény- és adatkötési képességekkel is rendelkeznek.
Könyvjelző objektum
A Könyvjelző objektum a dokumentumban szomszédos területeket jelöl, mind kezdő, mind végállomás. Könyvjelzőkkel megjelölhetsz egy helyet a dokumentumban, vagy a kínai változat konténerjeként. Egy könyvjelző objektum tartalmazhat beillesztési pontokat, vagy akár a teljes dokumentum nagysága is lehet. A könyvjelző a következő jellemzőkkel rendelkezik, amelyek megkülönböztetik a Range objektumoktól:
- Tervezés közben elnevezheted a könyvjelzőket.
- A Bookmark objektumot a dokumentummal együtt mentik el, így nem törli el, amikor a kód leáll vagy a dokumentumot lezárják.
- A View tulajdonsághoz úgy érheted el, hogy a View tulajdonságot hamisnak vagy igaznak állítva állítsd meg.
- A Visual Studio kiterjeszti a Könyvjelző objektumot egy Bookmark host vezérléssel kibővítve. A könyvjelző hosztvezérlés hasonló módon viselkedik a natív Bookmarkhoz, de további esemény- és adatkötési képességekkel is rendelkeznek. Ugyanúgy kötheted az adatokat egy könyvjelző vezérlőhöz egy dokumentumon, ahogy egy Windows űrlapon lévő szövegdoboz vezérlőhöz kötöd az adatokat.
Készíts egy Word VSTO bővítményt
Az alapfogalmak megértése után nyisd meg a VS 2022-t, hogy létrehozz egy új Word VSTO bővítményt, ahogy az alábbi ábrán látható:
Készíts egy vizuális szalagot a következő ábrán látható módon:
Dupla kattintással Ribbon1.cs megnyitni, eltávolítani az alapértelmezett fülfület, és húzni be egy új fület, ahogy az alábbiakban látható:
Húzz egy csoportot és egy gombvezérlőt az új tabufülre, ahogy az alábbiakban látható:
Kétszer kattintva az újonnan létrehozott gombra, hogy a következő kóddal kattints eseményt létrehozzunk:
(Vége)
|