CSCI E-143 CertPrep:   User Assistance   (Kalani, chapter 10)

Saturday, Jan. 8, 2005

This Saturday we cover Kalani's chapter 10,  "User Assistance and Accessibility".   This chapter is probably the most boring in the book,  which means we end on a real downer.

To create Help files,  you are supposed to use an SDK.   But I find no such SDK either in my installed version of .NET nor on the installation disks.   This means that any Help SDK you might use has to be downloaded from Microsoft.

In addition,  a lot of this chapter is devoted to point-and-click for Help 2.0.   Which version of Help are you supposed to use?   Here is what Microsoft MSDN says on its  Help Technologies Start Page:

"Currently there are two versions of Help available for use with Microsoft Windows:  HTML Help 1.4 and Microsoft Help 2.   The Microsoft Help team  [no smart remarks,  please]  has decided not to release Microsoft Help 2 as a general Help platform.   This is primarily in response to customer feedback that the most important thing is providing a standard Help experience on everybody's machine.  .  .  .

"Microsoft Help 2 is intended exclusively for those who are shipping products that integrate with,  or extend,  Visual Studio.NET."

If you understand that,  could you explain it to me?   What it boils down to,  I'm afraid,  is that I can't find a clear answer as to where you should concentrate any effort you might want to spend on this chapter in Kalani.   It looks as if you should just read the chapter as quickly as possible and let it go at that.

I would like to confess that I don't see any obvious difference in the appearance of Help files produced by these two Help systems.      (Pictures:  Kalani,  pp. 694  [for Help 1.4]  and 704  [for Help 2])

I think you will probably get only a single question  (at most)  about any of this stuff.   (But see the note at  "Accessibility",  below.)   Word in the discussion groups seems to be that the exams still have the odd question about it.


Files in the Help 1.4 system

A Help 1.4  (or 1.3)  system contains several different file types.   The following is an expansion of Kalani's introductory list:      (Kalani,  p. 682)

So far,  we have not mentioned any way of tying an individual screen in a Windows project to a particular Help file or screen.

Files in the Help 2 system

This ships as part of the  "Visual Studio Help Integration Kit"  (VSHIK).   (You may very well not have this as part of your .NET installation;  I didn't.)

In addition to the files listed above for Help 1.4,  Help 2 includes


The  HelpProvider  component

This is a .NET class which provides a link between an application and a Help file.   (It may not seem credible,  but Kalani says,  in the box on page 706,  that Help 2 has no facility for creating such links.   Well,  maybe it does by now.)

The  HelpProvider  component has a useful property:

In addition, the presence of a  HelpProvider  object on a Windows Form causes the Form itself and all its components with a visual aspect to have the following properties  (assuming that the  HelpProvider  object on the Form is named  helpProvider1:      (Kalani, p. 706)

This last entry needs some additional information.   What's the difference between this  "Pop-up"  help and a ToolTip,  which will be discussed below?   The difference is in the way the user gets the text string to show.   A ToolTip appears if the mouse hovers over the described Control.   "Pop-up" help only appears if the user clicks on the Help button and then on the Control.   The Help button is a small button in the upper right of the window, which contains a question mark.   (It is just to the left of the "X" which closes the app.)   To get this button to show,  you must do all of the following: This all assumes,  of course,  that you have

These requirements make it look as if the only place you would really consider using this "Pop-up" help is on some small screen like a dialog box,  where you don't want the minimize and maximize buttons anyway.

The  Help  class

This is a static class with two members:    (Kalani, p. 708, top)

The  ToolTip  component

(We have seen this before.)   ToolTips are text strings that appear in their own boxes when the mouse hovers over a Control which has such a ToolTip defined.   To use one,  drag a  ToolTip  component from the ToolBox onto the Form.   This gives a  ToolTip  property for each visual component on the Form which you can use to give helpful text.

There are some associated properties:      (Kalani, p. 710)


The  Accessibility  class

"Accessibility" here means making computer systems usable by people with various disabilities.   There is a lot of general interest in this area,  and you are almost certain to see one question in this area.

There are some general guidelines here,  such as

In addition,  there are properties specifically for Accessibility,  including      (Kalani, p. 713)

High-Contrast Mode

High-Contrast mode is indicated by a value of  true  in the system variable  SystemInformation.HighContrast.

A change in its setting is indicated by the  SystemEvents.UserPreferenceChanged  event.

If the boolean switch is on,  you should      (Kalani, p. 716)


Here are the relevant questions from the two tests at the end of the "short Kalani"  book:

    Test 1:  question  40  (page 375;  answer:  page 396).

    Test 2:  questions  10  (page 408;  answer:  page 440),  35.

(Some of these questions may duplicate those in long Kalani.   Both texts are listed here.)


Last  revised  Jan. 8, 2005