Online Help for a C# Application

G

Guest

Has anyone developed context sensitive help for a C# application? According to our programming staff, the development side is not able to provide links without adding hard coded links (topic names) in the user's registry. The latest e-mail we received from development states:

"Launching help with a certain topic using a Map ID is not supported in the C#.NET API. Well there is always a work around but would violate the .NET help infrastructure. Therefore I'm not really convinced doing it. To make it work within the .NET help infrastructure we need to set on the control on which you want to support F1 help the property "HelpNavigator = Topic" and e.g. "HelpKeyword = Code_Modifiers.htm". Once the focus is on the control or on one of its child controls, pressing F1 will open the help with the specified topic. Therefore instead of you giving us all the Map ID's you give use the .htm names for each topic."

I find it difficult to believe that Microsoft would develop a programming language that would not permit context sensitive help. Any suggestions or experiences with C# and help would be greatly appreciated.

Best,

Denise L. Moss-Fritch
Varian Medical Systems
 
O

Old Enough to Know Better

Denise L. Moss-Fritch said:
Has anyone developed context sensitive help for a C# application?
According to our programming staff, the development side is not able to
provide links without adding hard coded links (topic names) in the user's
registry. The latest e-mail we received from development states:
"Launching help with a certain topic using a Map ID is not supported in
the C#.NET API. Well there is always a work around but would violate the
..NET help infrastructure. Therefore I'm not really convinced doing it. To
make it work within the .NET help infrastructure we need to set on the
control on which you want to support F1 help the property "HelpNavigator =
Topic" and e.g. "HelpKeyword = Code_Modifiers.htm". Once the focus is on the
control or on one of its child controls, pressing F1 will open the help with
the specified topic. Therefore instead of you giving us all the Map ID's you
give use the .htm names for each topic."
I find it difficult to believe that Microsoft would develop a programming
language that would not permit context sensitive help. Any suggestions or
experiences with C# and help would be greatly appreciated.
Best,

Denise L. Moss-Fritch
Varian Medical Systems
Interesting question. I did a little research and found the following at
-------->
http://www.helpware.net/mshelp2/demo2/h1xNET.htm

The first thing you may notice about .NET applications is they no longer
support calling help using numeric Context IDs. Instead they typically uses
a Context Keyword string, the Keyword/URL mapping information being stored
in the "A" or "K" index of the CHM. There is nothing to stop you from still
using numeric context IDs but they will need to be converted and stored as a
keyword string. Alternatively keep "Context ID to URL" mapping information
on the application side, in an INI file or hard coded in switch statement. I
prefer an INI file as you can correct help mapping problems without
recompiling the application or help (less evaluation required).
<----------
We use a similar ini for pre-dot net chm files so this seems like a
reasonable solution. You could also use an xml I suppose.
good luck
 
N

Nick Malik

does seem odd... I hadn't researched this until seeing your message, so I
took a look for resources on this topic.

I'm not sure why your engineer said what he did. It does not seem to match
with what Microsoft is saying.
For a step-by-step discussion (in VB), See:
http://support.microsoft.com/default.aspx?scid=kb;en-us;821777

For information on the HTML Help SDK (a free software developer's kit,
standard across the Microsoft platform)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/vsconHH1Start.asp

Using the HTML Help system to create a CHM file (Compiled HTML), you would
then use the
Windows.System.Forms.Help class to call into the file when the user presses
F1. While the control referred to in the
above Microsoft support link is only described in terms of VB, I don't see
how that prevents a C# developer from
using the same capabilities.

Note: your developer said something about the C#.NET API. Strictly
speaking, there is no such thing.
C# is simply one of the .NET Framework languages. All of the .NET languages
share the same common
library (the .NET Framework). Therefore, nearly everything that can be done
in one language can be
done in another. That includes context sensitive help.

Perhaps there are some complications about your environment that I am not
aware of. That may explain
the differences between my answer and that of your engineer.

--- Nick

Denise L. Moss-Fritch said:
Has anyone developed context sensitive help for a C# application?
According to our programming staff, the development side is not able to
provide links without adding hard coded links (topic names) in the user's
registry. The latest e-mail we received from development states:
"Launching help with a certain topic using a Map ID is not supported in
the C#.NET API. Well there is always a work around but would violate the
..NET help infrastructure. Therefore I'm not really convinced doing it. To
make it work within the .NET help infrastructure we need to set on the
control on which you want to support F1 help the property "HelpNavigator =
Topic" and e.g. "HelpKeyword = Code_Modifiers.htm". Once the focus is on the
control or on one of its child controls, pressing F1 will open the help with
the specified topic. Therefore instead of you giving us all the Map ID's you
give use the .htm names for each topic."
I find it difficult to believe that Microsoft would develop a programming
language that would not permit context sensitive help. Any suggestions or
experiences with C# and help would be greatly appreciated.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top