C# - HTMLHelp készítése és felhasználása C#-ból

HTMLHelp 2. rész

forráskód letöltése
Soron következő cikkünkben annak járunk utána, hogy miként készíthetünk helyzet érzékeny súgót, melyben már minden egyes kontrolhoz tartozik egy-egy oldal a CHM állományban.
További vizsgálódásunk tárgya lesz az, hogy miként jeleníthetünk meg ún. popup ablakot a Help rendszer segítségével.
Első lépésként készítsük el az alkalmazásunkhoz szükséges HTML Help-et. Ebben két oldalt hozunk létre, mely két nyomógombnak a leírását fogja reprezentálni. Először elkészítjük tehát a két web oldalt, a 2a.htm és a 2b.htm állományokba.
Ezt követően indítsuk el a HTML Help Workshop-ot, melyben rögtön hozzunk létre egy új project-et. A teendőnk csupán annyi, hogy a már előkészített két HTM állományt hozzáadjuk az Add/Remove topic files gomb lenyomása után megjelenő ablakban. Ezt követően mentsük és fordítsuk le a CHM állományt.
Nézzük most a kész CHM felhasználását. Ehhez továbbra is a Help osztályt alkalmazzuk.
Felteszünk a Form-ra két gombot, melynek lenyomásakor azt szeretnénk elérni, hogy hol az egyik, hol a másik web oldal jelenjen meg a HTML Help-ben, attól függően, hogy melyik gombot nyomtuk le.
Egy adott oldal megjelenítéséhez a Help osztály ShowHelp függvényét használhatjuk. Itt első paraméterként azt az ablakot adjuk meg, mely szülője lesz a HTML Help ablakának. Második paraméterként a használandó CHM állományt kell megadnunk. Harmadik paraméterként pedig annak a web oldalnak a nevét, melyet szeretnénk viszontlátni a HTML Help-ben.
    private void button1_Click(object sender, System.EventArgs e)
    {
      Help.ShowHelp(this, "Help02.chm", "2a.htm");
    }
Egy érdekes és hasznos lehetősége a Help rendszernek, hogy egy popup ablakot is megjeleníthetünk a segítségével egy adott pozíción egy tetszőleges felirattal.
Ehhez a Help osztály ShowPopup függvényét kell meghívnunk. Első paraméterként azt az ablakot adjuk meg, mely szülője lesz a HTML Help ablakának. Második paraméter lesz a megjelenítendő sztring, végül a harmadik paraméterben egy Point struktúrát kell megadni, mely a megjelenítés pozícióját adja.
    private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
      Help.ShowPopup(this, DateTime.Now.ToString("G"), PointToScreen(new Point(e.X, e.Y)));
    }   

HTMLHelp cikksorozat