Dunque, di un programmino ho tre Help in formato .chm, ognuno posto nella relativa sottocartella:

\en\PsHwHlp_en
\it\PsHwHlp_it
\fr\PsHwHlp_fr

Tre voci di menu diverse aprono (mi correggo, DOVREBBERO APRIRE) i tre files diversi.

codice:
    Private Sub PrimoToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles PrimoToolStripMenuItem.Click

        Flag = "en"
        Flag = Application.StartupPath & "\" & Flag & "\PsHwHlp_" & Flag & ".chm"
        Debug.Print(Flag)

        Help.ShowHelp(Me, Flag, HelpNavigator.Topic, "intro.html")

        Flag = Nothing

    End Sub

... ed altre due uguali, cambio solo la prima definizione di Flag
La cosa inspiegabile è questa: alla prima apertura del programma, qualunque delle tre voci io clicchi...si apre correttamente il relativo help.

Poi se chiudo l' Help e clicco su un altra voce di menu per leggere un altro help.... si apre sempre e soltanto il primo Help lanciato dopo l' apertura del programma!

Ovviamente Debug.Print(Flag) visualizza l' indirizzo CORRETTO dell' help che voglio aprire, ma si apre COMUNQUE l' altro, cioè il primo che è stato aperto!

cioè, se anche il Debug.Print mi dà:

E:\visual studio 2010\Projects\MyProg\MyProg\bin\Debug\it\PsHwHlp_i t.chm

se il primo Help che ho aperto è quello in francese... si riapre quello in francese!!!

E' come se ci fosse qualcosa che devo disporre, ma non esiste un Help.Dispose()....