A Microsoft Word alkalmazás magyar verziójában a száznál is több eszköztárnak csak közel fele érhető el, de ez még így is jelentős mennyiség ahhoz, hogy valamennyi eszköztár betöltődjön, és hasznos területet foglaljon el a felhasználói képernyőn. Ennek elkerülése érdekében a fejlesztők az eszköztárakat szelektív módon tették elérhetővé, a felhasználóra és a végzett feladatra bízva a választás lehetőségét.
Az eszköztárakra egy kollekción keresztül hivatkozhatunk alkalmazásainkban, így lehetővé válik azok betöltése, vagy elrejtése kódjainkból. A mellékelt példaprogramban induláskor megnyitjuk a mellékelt sample.doc állományt, és a Form ListBox kontroljában megjelenítjük az összes elérhető, eltérő állapotban lévő eszköztár nevét, állapotukkal együtt.
A sample.doc dokumentumban rögtön látható, hogy melyek érhetők el és melyek nem. A lista valamely elemére jobb egérgombbal kattintva megjeleníthető egy menüpont, melynek segítségével állapotától függően betölthetjük, vagy elrejthetjük az adott eszköztárat.
Az induló műveletekben először kapcsolatot kell teremtenünk a Word alkalmazással, létre kell hoznunk egy példányt belőle, és meg kell nyitnunk a sample.doc állományt.
wa = new Word.ApplicationClass();
object file = Application.StartupPath + "\\sample.doc";
wd = wa.Documents.Open(ref file,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o);
A LoadTools metódusban végezzük el az eszköztárak lekérdezését, és adatainak megjelenítését. A Word.Document objektum CommandBars gyűjteményében találhatók meg az eszköztárak, és minden eszköztár-objektum rendelkezik egy Visible property-vel.
A metódusban az első 40 eszköztár állapotát fogjuk vizsgálni, és lekérdezni.
for(int i=1;i<=40;i++)
{
if (wd.CommandBars[i].Visible)
{
listBox1.Items.Add(wd.CommandBars[i].Name + " : látható");
nums.Add(i);
}
Amennyiben az eszköztár látható, akkor nincs probléma. Amennyiben viszont nem, akkor a lekérdezés művelete kivételt generál, melyből arra következtethetünk, hogy az nincs betöltve.
A lista egy adott elemére kattintva megjelenik a feliratában az adott állapotot figyelembe vevő menüpont, mellyel elvégezhetjük a műveletet. A betöltés egyszerűen a Visible property TRUE értékre történő beállításával lehetséges, míg elrejtéskor a property értéke FALSE lesz.
if (wd.CommandBars[index].Visible)
{
wd.CommandBars[index].Visible = false;
}
else
{
wd.CommandBars[index].Visible = true;
}
A művelet ideje alatt elrejtjük a dokumentumot, hogy az eszköztárak lekérdezése ne legyen zavaró (a képernyő vibrálhat). A művelet végén újra lekérdezzük az eszköztár-listát.
Az alkalmazásból történő kilépéskor bezárjuk a Word dokumentumot is.