Re: a very, very long reply (those on pay by the bite may wish to skip it, to: introduction, and first query

  • From: "The Elf" <inthaneelf@xxxxxxxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Fri, 12 Jun 2009 22:53:24 -0700

hello,

I'm called inthane or the elf, I'm not much of a programmer, but I collect and dispense information to folks that are, or are working toward becoming one.

here is a copy of a document that came out here a while back full of information about such items, and URL's for further information on the various topics.

"From: "Jamal Mazrui" <empower@xxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>; <program-l@xxxxxxxxxxxxx>
Subject: Visual Studio tips for blind programmers
Date: Thursday, October 09, 2008 8:40 PM

Visual Studio Tips for Blind Programmers

From the web page
http://EmpowermentZone.com/ndn.htm

Nonvisual Development with .NET:
Tips for Blind Users of Visual Studio and Related Tools

Edited by Jamal Mazrui
October 9, 2008

On a couple of public mailing lists, ProgrammingBlind@xxxxxxxxxxxxx and
Program-L@xxxxxxxxxxxxx, numerous tips have been contributed for blind
programmers who use Visual Studio or other tools for building applications
with the .NET Framework.  The following is a compilation of those tips.  I
have made edits to improve their collective readability, flow, or
organization rather than simply pasting them verbatim in their original
email form.  My presumption is that these tips were freely shared for the
purpose of benefiting others, and so their inclusion here is consistent
with that spirit.

Sometimes, essentially the same tip was contributed by multiple
individuals, so I picked one that happened to fit better in the editing
context.  Accordingly, I have not explicitly associated an author with
each tip.  A list of contributors is below.  If anyone recognizes a
contribution and would like it to be changed or removed, please let me
know.  Also let me know if a name should be added, dropped, or reworded.
There are names and tips that are inadvertently missing.  We want all
contributions to be given voluntarily and gladly.

The current, alphabetized list of contributors is as follows:  Dave B.,
Sina Barham, Jeff Bishop, Eunice Clicker, Isaias Couch, Bill Dennis, Punit
Diwan, Justin Daubenmire, Shannon Gerdts, Rodney Haynie, Chris Hofstader,
James Homme, Marvin Hunkin, Jacob Kruger, Pranav Lal, David Lant, Doug
Lee, Tyler Littlefield, Mark Long, Jay Macarty, Jamal Mazrui, James Panes,
Will Pearson, Ken Perry, Martin Slack, Travis Roth, Sunfire, and Rick USA.

I grouped the tips into the categories listed in the table of contents
below.  Naturally, there is overlap.  Within each category, the sequence
is mostly random.  Contributions have been primarily JAWS related, but
users of other screen readers may benefit from underlying ideas.  Tips so
far have mainly been for Visual Studio 2005.  Contributions are encouraged
on any relevant topic.
----------

Contents

Visual Studio Configuration
Error List
Database Management
JAWS Configuration
Layout of Menus
Visual Studio Macros
Debugging
Adding Event Handlers
Class Diagram
Layout of Controls
MSAA
Code Editor
IDE Navigation
Open Issues
Summary of Keyboard Shortcuts
Related Links
----------

Visual Studio Configuration

Installing the .NET 2.0 SDK makes additional keyboard schemes available to
C# Express.  They may not be available to Visual Basic Express, however.

scripts work well for the VB portion of VS 2005. You will need to set your
default keyboard layout to C#, but this does not degrade performance when
using VB.

Here is a fix for Vb.net's loading of the code editor getting really slow.
That was due to the Vb.net Settings FILE getting too big and not notifying
me.  I deleted it, selected the default settings  and things work fine
now.

This is a way to restore default settings.  1. Shut down all instances of
Visual Studio 2005. 2. Click Start, the choose Run.... 3. Type "<path to
DevEnv.exe>devenv.exe /resetuser data".

Set all windows possible to "Tabbed Document".  You can do this by opening
a window (such as the "Solution Explorer"), press alt+w to open the
"Windows" menu, arrow down to "Tabbed Document" and if it is not checked,
press return to check it.  If "Tabbed Document" isn't available then see
if some other option on the "Windows" menu is checked, if so, uncheck it
and then see if "Tabbed Document" is now available.  By having "Tabbed
Document" checked one is able to use control+f4 to close windows.  This
should be done on every possible window.

Make sure that in the toolbox "List View" and "Show All" is checked. Do
this by entering the toolbox with control+alt+x, right click or press the
applications key, and then arrow down and be sure both are checked.  If
one or the other isn't check it by pressing return on the unchecked item.

When you press escape on some windows, such as the object browser, the
solution explorer, the properties explorer for WinForms/WebForms, the task
list, the error list, etc, really anything that isn't the editor, a design
surface, or the start page, Visual Studio simply hides that window and
brings the editor or designer to the front.  Escape does not do what you
would expect and close the window, it simply makes it disappear from view.

when you press escape it doesn't actually close a window.  For example, if
you are viewing a control's properties in the WinForms designer, pressing
escape will just bring the WinForms design surface to the front, giving it
focus.  Very occasionally this can cause a screen reader not to update
it's off screen model correctly, where and when depends very much on the
screen reader and the screen reader version.  So, a good tip is to keep
the number of open windows down to a minimum.  You can close windows by
bringing them into focus, either by selecting them from the view menu or
the window menu, and then selecting hide from the window menu.  If you
want to hide all windows, then select auto hide all from the window menu.

Another tip, and this is specific to JAWS, is that some of the windows,
such as the Solution Explorer, have their own menus, menus that are
separate from the main menu. To access these menus you need to press left
shift + left alt.  However, the Alt+Shift key combination is used to
change the input language on multi language systems.  Freedom Scientific
has written a JAWS script that checks the system tray when this key
combination is pressed and determines whether the input language changed.
This JAWS script prevents the menu for the Visual Studio window being
activated, and therefore to access the menu you need to use the JAWS allow
key through feature, which you can invoke by using JAWS key + 3 on the
numeric line above the block of alpha keys.

Turn off the Exception Helper.  You can find this in the Debugging options
dialog in the property sheet style settings.  It's a bit buried, but it's
there.  When you do that, you no longer get the links and buttons, but
instead are simply presented with the Exception Window, similar to how it
was in VS.NET 2003.

----------

Error List

The checkbox for not displaying errors in options works only until the
first time you try to find out about an error, at least on my machine.

Go to the errorlist through the view menu. Reclass it as a listbox.  This
is insert-R in WindowEyes. Now, you can edit your code in peace.  However,
you will also be unable to read anything in the errorlist. To access your
errors, you can simply use the next and previous error keys.  By default,
these are alt-shift-2 and alt-shift-1.  These will take you to the line
containing the error. To read the error itself, you route the mouse to the
cursor.  In WindowEyes, this is control-shift-dash.  When the mouse hovers
over the error, I suppose a tooltip comes up, which is then read out.

With the Error List, I suspect you're running into a problem with the JAWS
off screen model.  When you write code in either Visual Basic or C# Visual
Studio checks the code as you write it, flagging up any compilation errors
as you type.  Should you create an error, Visual Studio will place it in
the Error List, even though focus is not set to the Error List.  This
confuses the off screen model used by JAWS, which then reads the newly
written text in the Error List.  To get around this problem you need to
close the Error List Window.  To do this: 1. Set focus to the Error List
by selecting View > Error List. 2. Close the window by selecting Window >
Hide

You also need to stop the Error List being displayed automatically, which
you can do by: 1. Selecting Tools > Options 2. Selecting 'Projects And
Solutions' from the tree view containing the option categories 3. Tabbing
to 'Always show Error List if build finishes with errors' and deselecting
this checkbox.  Press the OK button in the Options dialog.

If you want to view the Error List in the future, you can do so by: 1>
Selecting View > Error List 2. Looking at the list of errors 3. Closing
the Error List window when you've finished, by selecting Window > Hide
whilst focus is set to the Error List window.

If you only want to view the errors that were generated when you last
built your project, you can use the output window to do this.  The output
window should be displayed after you've built your project, or you can
display it using ctrl + alt + o.  A tip when using JAWS with the output
window, is that you may have to refresh the JAWS off screen model to read
some of the lines in the output window.  You can do this by pressing the
JAWS Key, usually insert on a desktop and caps lock on a laptop, + escape.

When this window pops up for the first time, I take focus to that window
(ctrl+w e), then, go to the windows menu (alt+w) and then select hide.
That is it, the error window remains hidden and does not automatically pop
up until I explicitly compile the project. The window starts popping up
automatically again after each compilation and I have to repeat the hide
operation.

Or alternatively, using the built-in VS2005 keys instead of the script
ones, hit escape to exit the error window, and ctrl+backslash followed by
ctrl+E to display the error list.

There isn't a way to actually stop the focus being put in the error list
when it pops up.  It's quite annoying at times.  But once you get used to
just hitting escape to dismiss it, you can quite often get by.

Press Alt+Shift+H to hide the error list, or Alt+Shift+E to show it.

Try looking in the Options dialog, to see if you can change any of the
settings to produce a response behaviour you like better.  For example, I
turn off the debug assistant feature, which shows error explanations and
provides links to all manner of further information.  I do this because
that window not only takes focus away, but isn't especially accessible or
helpful to an experienced programmer.  I much prefer to be just left in
the error list when it pops up.

Don't forget you can also filter the error list to only show errors and
not warnings or information.  By doing that, you get less clutter and it
only pops up for real errors that would prevent a successful build.

I found it in projects and solutions under build. open it up and go down
to build out put verbosity and set it to quiet. leave the other setting
alone and you will like the difference you get. coding without being
bugged by the debugger and a debug error list when you want it.

Another good point about pressing enter on an error in the Error List is
that the error message should then be visible on the status bar.  This
leaves you free to remember more of the code rather than the details of
the error message.  Most screen readers have functionality to read the
status bar, and so this shouldn't be much of a problem.  You can also get
the current line and column numbers from the status bar.

----------
Database Management

how to create an ADO .Net Dataset by hand, and add it to a form.  This is
what dragging a database object from the server/database explorer onto a
Winform design surface does.

Step 1: Add a database connection to your project 1. Open server/database
explorer by pressing ctrl + alt +s 2. Select the database connections node
3. Press the applications key and select add connection to add a
connection to an already existing database, or create new SQL database to
create a new SQL database should you have SQL Server installed. 4. Fill
out the details in the wizard, and then you should have a connection to a
database added

step 2: Adding the data set with the data source configuration wizard 1.
Select the data menu (alt + a) 2. Select the add new data source option.
3. Follow the wizard, and you should have a data set added to your
project.

3: Adding a data set control to the Winform 1. Open the Winform to which
you want to add the data set 2. Open the toolbox (ctrl + alt + x) 3.
Select the data tab/group, and from that tab/group, the data set control
4. Press enter 5. The data set wizard will appear, and select the data set
you created in step 2. ----------
JAWS Configuration

The Which Script command, JAWSKey+W, is a way of picking a command from an
alternate menu of JAWS scripts.  A standard ListBox shows each script name
and assigned key.  Obviously, this is not an efficient way of working in
the IDE, but it may occasionally be a helpful way of browsing the scripts
available and picking one from an alphabetized list, particularly since
the hotkey summary, JAWSKey+H, does not currently have live links to
scripts.

Alt+Shift+W lets you pick and activate an open window from a standard
listbox.  In commercial VS versions, the extensibility model is used.  In
an Express edition the native Alt+Control+DownArrow key is sent instead.

The HTML documentation for the scripts is available by pressing JAWSKey+H
twice quickly when in the IDE.

The Elevate Version command, Control+JAWSKey+F11, makes upgrading to the
latest scripts more convenient.  Pressing this hot key points the default
web browser to the location of the latest installer,
http://EmpowermentZone.com/msenv2005.exe

The scripts are compatible with JAWS 5.1 and above.  Later JAWS versions
work better with .NET controls, however.

Your tool is the Speech and Sounds Manager.  Your task is one of the very
reasons FS put that tool there.  From within Visual Studio or whatever
module of that you're working in, select Configuration Manager from the
"Run JAWS Manager" dialog box.  Now, under the Set Options menu, select
"Speech and Sounds Manager". Select the "New Scheme" button and enter a
textual description of what your scheme is for. Example: For syntax
highlighting: comments, key words and variable declarations. Press OK,
then give your scheme a name and then press OK. Now, as it's selected in
the combo box, select Modify and on the colors page, you want to add your
color.  Assign the behavior: "Speak using voice" I think it's called.
Select a Voice Alias to use. Important note here: You want to make sure
you select something that not only different from Normal but also is
something you can understand / live with. Try it with comments, variables,
etc.  Try the different radio button choices for behaviors.  Insert+f1
works everywhere in the entire Speech and Sounds manager, as it does in
Configuration Manager.  It's your shift f1 help for the JAWS managers.

One final thought; if you're using speech only, try looking at the files
for indentation.  FS has shipped indentation files for tab stops. So you
hear: "Left edge" "Tab 1" "Tab 2" etc. as you arrow through nested code. I
find it very useful in a pinch when I don't have a Braille display hooked
up to my computer. Since all scheme files are text, you can copy and paste
from one to another. This isn't supported by FS, I don't believe nor
should it be really.  They have built a very comprehensive Speech and
Sounds Manager for you to use.

Using the Speech and Sounds manager you can copy settings from file to
file as follows:

Let's say you have your tab stops set to 2 spaces. In the Configuration
Manager, under Format Options, you turn on the Indentation by checking the
appropriate box. Now, select Speech and Sounds manager, pick "Indent tab
is 2 spaces" Press "Apply". Now, when you do what I mentioned earlier and
say "New Scheme", you start with that Indentation scheme as a template:
very nice. Now you get your indentation settings, now you add your rules
for colors.

One final thought: Marking colors in Braille is different.  To put dots 7
and 8 under the specified color you want, pick the option: "Mark Colors in
Braille" from the "Run JAWS Manager" dialog box.

The msenv2005.jcf file is configured so that JAWS only reads labeled
graphics.  Thus, if you want to assign text labels to numeric graphics in
VS, you need to first set JAWS to read all graphics within the Graphics
dialog of Configuration Manager.

The Toggle Punctuation command uses the JAWSKey in combination with the
grave accent key at the top left of the main keypad (U.S. keyboard).  This
toggles speech between all and no punctuation.  No punctuation is
sometimes useful when reading quickly for concepts, whereas all
punctuation is useful when reading carefully for details.

a custom SayWindowTitle script, JAWSKey+T, reads a more relevant window
title than the JAWS default script.

If advanced verbosity is set in JAWS, e.g., through the Insert+V dialog,
the scrips suppress some verbalizations, e.g., the word "Chord" after the
first of a two key sequence, or the words "Hide error list" after
Alt+Shift+H.

----------
Layout of Menus

I found an easier way to add tool strip items, without having to route
jaws to pc cursur, find the type here. what you do, is drop a MenuStrip
control, type the initial value like &File. then you hit f 4, go to the
drop down and select collection. then you hit the browse button, and there
is a combo box to add to menu items. and it adds it as ToolStripMenuItem1,
and then you select the ToolStrip item, then tab to the properties area,
where you can add a name, and a text value,and it works. just doing a
project, where you have to select a combo box and a list box, and then
have a file menu selection, with a series of print options, for a coffee
shop, select the flavors from a combo box, then select the coffee syrup
from a list box. did the labels, and the combo box, and list box and added
the values, in the property window, and put in the text, but when i ran
the program and hit the menu key, when it said menu, it highlighted or
selected the combo box. so doing it this way, put the menus and menu items
first, and have tested it. works, and got a file menu, with the list of
print choices. and then putting multiple MenuStrips for edit, and help.

1.  Go to the toolbox and add a menu strip to your form. 2.  Highlight the
menu strip.  If you just added the menu strip to your form, and have done
nothing else, the menu strip should automatically be highlighted. 3.
Press your applications key.  This is akin to right clicking the menu
strip. 4.  Arrow down to "Edit Items...", and press enter. 5.  Tab to the
combo box where it says:  "Select Item and Add to List Below". 6.  Select
the type of item you want to add.  I typically use "Menu Item". That is
the item that will create the menus such as File, Edit, etc on the menu
strip.  Then tab once to the "Add" button and press return. 7.  Set the
options for the object you've added.  If you wish to add menu items
beneath the menu you just constructed then arrow through the list to "Drop
Down Items", and then tab twice to "Brows..." and press enter.  This will
take you into the area to add and edit items within the menu you've
recently added. 8.  Repeat 5-7 until you have things satisfactory for the
menu you are working on.  Then tab to "ok" and press enter.  This will
return you to the form in stages depending on how many menu levels deep
you went.

You can also add the standard items to a menu strip by simply:

1.  Highlight the menu strip. 2.  Press the applications key. 3.  Arrow
down to "Insert Standard Items", and press enter.  This will add only the
standard items to the menu strip.  However, you can edit, delete and add
more from this point.

If you want to add a MenuStrip to a form, go to the toolbox (control+w,
and then the letter x). Arrow down to the menus and toolBars toolbox group
and press right arrow. Arrow down to MenuStrip and hit enter. If you are
using jaws, you can then press tab until jaws says "MenuStrip1". Here you
can add MenuItems and change properties around. Just so you know, if you
type something directly into the MenuStrip, you will have to hit enter to
make it take affect. Press f4 on the MenuStrip and/or the MenuItems you
create to change its properties. Another note: some of the MenuStrip
properties will be inherited by the MenuItems.

I needed to  drop a MenuStrip Control on to the Form,right mouse click the
strip and use the Manager and properties  Windows to define and manage the
Tabbed DropDown Menu Items. In Jaws you can also just down arrow on the
MenuStrip or on a Tabb Item on the strip like the FILE, EDIT, VIEW, HELP
etc. . . and then type in the name of a PullDown item you want added and,
I think hit enter.  If you right arrow at the root MenuStrip Level you can
add new Root Level Tabbed items using this method also.

When you first drop a menu strip onto a form, it automatically puts you
into edit mode.  If you save the form, close the designer and then open it
again, you will see that tabbing to the menu strip and hitting arrow keys
will not pop up new or existing menus.

sometimes one might want the layout info when focus is in a MenuStrip or
similar control such as a ToolStrip, status strip, or context menu strip.
Generally, the main menu is in a standard place and there is no need to
change it, but other strip controls can vary in appropriate placement.  I
think other commands also did not work right when inside a strip control,
so the easiest was to make layout announcements a toggle and have form
designer related custom scripts check the status of that mode before
performing a custom action.

I always find working with the MenuStrip a pain. Where you see the words
quote Type Here" is actually a box on the Forms Designer where you can
enter the names of items to add to the MenuStrip.  If you tab to the Menu
Strip and arrow right one space you are suppose to be able to enter a new
TopLevel item Name likeFile Edit View or anything else you would want to
see across the top of the MenuStrip. I think you would just enter the Name
and hit enter. Then, You should be able to bring up the menu bar and under
the View Menu select Properties. I think you can set the Click Event and
properties like text from there. Go Back to the Forms Designer and tab to
your new Tabbed Item, that is, FILE, MENU or whatever you called it, arrow
down once.  You should get the Type Here box again.  If you enter a name
here it will be a PullDown under the Tabbed Ite you entered as a TopLevel
item..  For Example; if you entered the word FILE as your first TabbedItem
you might enter something like OPEN or CLOSE orSAVE or Any other name for
the PullDown to appear just under the FILE TabbedItem. This Will then be
an event you will want to write code for. I think after you type the name
you hit enter, not sure. If it all works you should be able to run your
program just to see what happens. If you entered a TopLevel nTabbedItem of
FILE and the first PullDown as SAVE you should hear something like the
Window Name. Press the Windows Key to open the Menu Bar and you might hear
FILE, then if you arrow down you  should hear SAVE.  Actually enter two
TabbedItems to the top level of the Menu Strip and at least one pulldown
for each like: FILE with a PullDown called SAVE or anything you want to
call it, and a second Tabbed item called something else, hmm,
perhapsREPORTS and a PullDown under REPORTS called something like
MyFirstReport. Then when you run your program you should be able to bring
up the MenuBar, tab between FILE and REPORT and hit the Down Arrow to open
either TopLevel TabbedItem and read the PullDown under the TabbedItem.
Like tab to REPORT, down arrow and should hear MyFirstReport. Phew!  The
control is a kind of pain to use with WindowEyes but this method might
work well with Braille. You should feel a box to the right to enter new
TopLevel TabbedItems and a box under to enter PullDown Items under each of
the TopLevel Items. You might have to arrow past any items you already
entered, right for TopLevel items until the Enter Box comes up and down
arrow to enter a new PullDown Item until the Enter Box comes up. At least
that is how I remember the old  tutorials for this feature. Then you are
suppose to be able to tab to one of those names, or likely tab to it since
the arrow might trigger the type here box to pop up, and then down arrow.
Again if you are on, for example, File and down arrow once it should say
type here.  You should be able to enter a Name of the first pull down item
under the File Tab. So you could enter anything for a name like SAVE or
OPEN or CLOSE or whatever else you want.  This is how sighted folks do it
and it might work well with your braille setup.

First we throw a MenuStrip control on the form. It automatically
positioned itself on the top of form. So, no worries about its
positioning. Every menu has Items as a default property. Its a collection
property. Every menu Strip has a MenuItem. This menu Item has different
ToolStripMenuItems. These are the first thing with which user interacts.
For example File, Edit, Format are all actually are MenuStripItems. To add
MenuStripItems, click Add Button (Alt + A) on the Items Collections Editor
Windows. Here you set the two properties namely Text and Name properties
for each ToolMenuStripMenuItem. Here is steps we did so far after throwing
a MenuStrip control on form: Opened the Items Property of MenuStrip
Control. To do this, throw a MenuStrip control and hit F4 for Properties.
Make sure you are on Items property. If not use up and Down arrow to reach
there. Hit Tab and you will hear Collection then hit tab once more to
heaer Brouse Button and hit Sbace to open Item Collection Editor. Press
Alt + A to add ToolStripMenuItem and set their name and text property
individually. Now like wise each ToolStripMenuItem has collection property
for DropDownItems. As DropDownItems property is a part of
ToolStripMenuItem, so you can navigate there by pressing Tab Key. Now if
you add items in  dropDownMenuItem, it will be sub Menu for that MenuItem.
For example in Ms Word File Menu, Permission and Send To have Submenus.

----------

Visual Studio Macros

For those of you with a version of Visual Studio 2005 that supports
macros, there are some handy sample macros added to improve accessibility
in the IDE.  One of the most useful for use with a screen reader that I
have found is the MaximizeToolWindowsInEnvironment macro.  You can run
this as a one-off macro for your current session by opening the Macro
Explorer with alt+f8, expanding the Samples node, expand the Accessibility
node, and then select MaximizeToolWindowsInEnvironment.  Running it this
way will only maximize the windows during your current VS2005 session.

To have this macro run every time you start VS2005, do the following:

1. Open the Macro Ide by pressing alt+f11. 2. Arrow up to MyMacros and
press enter to expand the node. 3. Arrow down to Environment Events and
press enter to open the module that responds to IDE events. 4. Press
ctrl+f2 to open the member drop-down list. 5. Use arrows to select DTE
Events and press enter. 6. Press tab into the drop-down list of events,
and select StartupComplete and press enter. 7. IN the event procedure
added to the code module, simply add the line:

MaximizeToolWindowsInEnvironment()

8. Press ctrl+shift+B to build the macro, and then close the Macro Ide
with alt+f4.

Now, each time you open Visual Studio 2005, all the tool windows, such as
the Error List, or Immediate Window, will behave just like ordinary
document windows.  You will be able to select them from the Windows menu,
close them with ctrl+f4 and so on.  Naturally, you can do this for any of
the sample macros, or even ones you have written yourself, in order to
improve other accessibility features if you wish.

I recommended that people use the Sample macros provided with Visual
Studio to improve certain accessibility aspects of the development
environment.  The one I find most useful is the one to maximize all
windows.  This means that all the windows, including some of the tabbed
sheets like Properties and Tasks, get turned into standard child windows
that you can open and close just like the editor and designers.  They also
appear in the Windows menu list, so you can see all the windows you have
open.  To get to this macro, press alt+f8 to bring up the Macro Browser,
and expand the Samples node in the tree. Then expand the Accessibility
node and locate the macro for maximising windows.  Right click this item
and run the macro to make the change.

----------

Debugging

If you find a point in your code that you want to start stepping through,
and press f9, this sets a break point.  Code execution will stop at this
point and the debugger will start with that line highlighted.  You can
then step through the code by pressing f11.  If you want to step over a
call to a procedure or function, without having to go through all the
lines it contains, press f10 to step over.  If you want to step out of the
current routine, and resume stepping at the next statement after the one
that called it, press shift+f11.

You can use the JAWS cursor to hover over variables to see their values at
runtime when the debugger is in break mode.  However, note that the
current VS2005 scripts aren't terribly helped by the fact that certain
objects show their definitions when you do this, instead of their values.
This is sometimes because the object has no ToString function to allow a
meaningful value to be shown.  But sometimes I've found that even things
like the Count or Text property of a collection or control does't show the
value.

If you want to see the values more reliably, and with the ability to
browse them with the cursor, then use the Locals window, which you can
access from the Debug/windows submenu, or by pressing ctrl+alt+v followed
by l I think.

While debugging, whenever you press F10, F11, or Shift-F11 to step over,
step out, or step into the next statement, you can then read the line
using JAWS Key + up arrow).

Those options are available when the caret isn't positioned on a line with
a breakpoint.  When the caret is moved to a line containing a breakpoint
the options to insert a breakpoint disappear and the option to delete the
breakpoint appears.

F10 and F11 related key combinations read the line of source code after
the debugger repositions the cursor.  The scripts monitor cursor movement
for up to 2 seconds before reading the line.

when you toggle a break point on a line jaws says graphic xxx when the
break point isn't there jaws reads the line normaly so if you redefine
that graphic it will say break point At me this is the way it works. So
when you are in code editor stay on a line read it with jaws and see that
nothing that the line is readed after ress f9 and reread the line and you
will see that jaws announce in front of the line a graphic.

----------

Adding Event Handlers

1. Press F7 to switch to the code editor. 2. Press control+f2 to move to
the objects and events boxes. 3. Scroll to an object, such as Button 1. 4.
Tab to the events box for that class, scroll to an event, and press enter
to insert the skeleton code for that event handler. You should see
something like this appear in the code window, assuming you want to create
a click event for a button: Private sub Button1_Click (By val as ..., by
objects as ...)

you can get to all of the events through the properties window... Just hit
f4 on a control, tab to the events button and hit space... when you are
done arrowing to the event you want, hit enter. If you press f4 on a
control that you don't need an event for, just tab to the controls list in
the properties window, tab to the events button and press space. Arrow to
the event you want and hit enter...

If you want to add the default event handler for a control, all you have
to do is hit Enter on that control when you are in the Form Designer. This
is the load event for forms, the click event for buttons. Play around with
it and find what it is for other controls. Just remember that you can not
tab to a label at run time, even though you can create click event
handlers for them.

Insert+Delete tells you the class and member in which the cursor is
located.  Pressed twice quickly, it puts focus in a combo box for
navigating classes in the current file (Control+F2 may get there more
reliably).  You can then tab to another combo box for navigating members
of that class.

If you are using Visual Basic 2008, then, once you are in the code view of
a particular module, you press ctrl+f2.  This will give you a list of
controls.  You select whatever control you want and then press the tab
key. You will be placed in a list of events for that control.  Press the
enter key on the event that you desire to place in your code.  Once you do
this, the event will be created automatically and you will be placed
inside the routine for that event.

After hitting Ctrl + F2, use the Alt + down arrow key to open the combo
box, move up down the list of objects/controls, use Alt + up arrow to
close that one, then tab over and again use Alt + down arrow to open the
event list since otherwise it might try to insert code as soon as you
change the selection before you get to the event you actually want.

Select an event from the list and hit Enter. This will place you back in
the code editor in the body of an empty event handler for the event you
selected.

----------

Class Diagram

I use the class diagram almost all the time now that I know it exists. I
played around with it for a while to get used to how it works. When you
have a blank diagram, add a class to it. You can do it with shift+F10,
applications key on the keyboard, control+w, x for the toolbox or bring up
the context menu for a class and arrow down to view in diagram and hitting
enter on it. The other way to add a class to the diagram is to press alt+d
for the data menu and arrowing down to add>class...

Once there is a class that is added, press tab to get to the class that
you want. Jaws will announce the class name, for my example, "news". After
that you have to open the class tree by pressing right arrow (just like a
treeView). Jaws wont say things like "opened, 5 items", so you will have
to trust that it is opened. Once the class is opened, I added a field to
the class by bringing up the context menu for the class and going to
add>field. An edit box will pop up asking for the name of the field. I
typed in NewsId and hit enter. Once the edit box goes away, press tab to
get back to the class you were working on. To see the list of fields in
the class (after tabbing to the class in the step before), hold down your
JawsKey (numpad insert for most) and press right arrow once. Wait for a
second to see if Jaws says "fields". If it does announce "fields" just
right arrow to the list of fields. You can set the properties for each
field by pressing F4 on the field name. If by chance Jaws didn't say
"fields" the first time, keep holding down the JawsKey (insert) and
pressing right arrow until you do hear "fields". Adding all of the other
types of class members is pretty much the same way as adding a field. If
you have more than 1 type of class member, like say, you have fields and
properties, then when holding insert and pressing right arrow to fields,
you can arrow up and down the member type list. When you are on the member
type you want to look at just press right arrow to the list. To back out
of the tree just hit left arrow 3 times and

If you want to use the class diagram now you can use the mouse cursor in
Jaws and go to the tree view on the diagram and click on it.  From then on
you can move around in the tree.

----------

Layout of Controls

The arrow keys and their modifiers position and size controls.  Alt+Q
queries overlapping conditions.  Some helper scripts move controls so they
are seperated by standard spacing amounts.  Coordinates are in pixels.

The FlowLayout Panel, and also TableLayoutPanel, container controls are an
excellent way of automatically positioning controls, and the AutoSize
property is a good default for their sizes.  One can assume that these
generally produce visually acceptable defaults since they were developed
by Microsoft after extensive usability research and testing.  Sometimes,
additional tweaking is helped by a sighted reviewer, as has also been
said.

the VS scripts implement an alternative way of navigating the property
list for a control.  Press Alt+Enter instead of F4 for a standard list box
with initial letter navigation (the info is gathered via MSAA). Similarly,
Alt+X in the form designer presents the toolbox of controls in a standard
list box.

When you are on a control of your project (a textBox or button etc...)
press f4 for properties and arrow down to TabOrder and you can then change
it. It also is a shortcut, but you can determine how the tab order gets
set by putting controls on the form in the order you want to have the
TabOrder set. For example, if you want a textBox to be first in the tab
order, then it would be the first control you put on the form. Then if you
wanted a button right next to the textBox and you say that should be next
in TabOrder, then the button will be the next control you put on the form
and so on. Just so you know, some controls don't have a TabOrder. Those
are things like ToolBars, menus, statusStrips/statusBars, frames, images,
labels, static text, tables and so on so with the controls that have no
TabOrder, it wont matter what order you put them on the form....

Alt+Enter is an alternative way to navigate properties using a standard
listbox (and MSAA) rather than the grid interface of F4.

In general, I find that a good approach for most layouts is to decide, for
each control, whether it should be placed either to the right of the
previous one with about the same top border, or below the previous group
of controls near the left margin.  Based on my understanding of Microsoft
user interface guidelines, 14 pixels should generally separate unrelated
controls and the form borders.  8 pixels should separate related controls,
except that a label should be separated by 6 pixels from its associated
control (typically a TextBox or ListBox).

Alt+PageDown is for setting the bottom margin of a Windows form.

Add a control from the toolbox on to a form by opening the toolbox with
control+alt+x.  Arrow to the control you want and press return.  The
location and size values will need to be set in code or in the properties
window.

The scripts provide positioning and sizing conveniences that perform
common actions in the process of llaying out controls.  Sighted users have
several IDE options for aligning and sizing controls, but they are
sometimes not accessible or efficient to use with a screen reader.  These
scripts try to close the gap in some ways.

The left, right, up, and down arrow keys position the current control and
automatically speak the coordinate that changes.  Similarly, Shift plus
arrow keys size the control.  Adding the control key positions or sizes by
larger increments.

The Alt modifier provides auto placement features.  Typically, after
adding a new control to a form, you will decide whether to place it either
to the right of the previous control or somewhere below it.  Alt+LeftArrow
prompts for the amount of horizontal space, in pixels, to be used as
separation between the current control and the previous one to its left.
Alt+UpArrow prompts for the separation between the current control and the
previous one above it.  The default is 8 pixels.

Alt+RightArrow sizes the width of the current control to the maximum width
of any controls that have the same left coordinate.  Thus, a control can
easily be made as wide as the one directly above it.  Similarly,
Alt+DownArrow sizes the height of a control to the maximum height of any
control that has the same top coordinate.  Thus, controls in the same
horizontal band can be made to have equal height.

Adding Shift to Alt plus an arrow key sets a coordinate to the same as
that of the previous control.  Specifically, Alt+Shift+LeftArrow sets the
left coordinate; Alt+Shift+UpArrow sets the top;  Alt+Shift+RightArrow
sets the width; and Alt+Shift+DownArrow sets the height.

Press SHIFT+any arrow key to resize the Button control by increments of
one pixel. Press CTRL+SHIFT+any arrow key to resize a control in snapline
increments, which take into account the Margin and Padding properties of a
control.

Alt+L is a toggle for announcing layout values when using the arrow keys
in the form designer.  The default is on.  Toggle it off when navigating
within a menu strip or similar control.  Designer-specific hot keys only
work when this setting is on.

Alt+Enter is an alternative to F4 in the form designer, allowing you to go
to properties using initial letter navigation in a standard listbox.

The PropertiesPick command, Alt+Enter, remembers the last property chosen
in the list box.

The layout announcements may be toggled on and off with Alt+L.  The
default is on, so press Alt+L to turn off announcements when navigating or
editing menu items, and then Alt+L again for layout announcements when
focus is on other controls of the form.

How To: move between different controls that have been placed on a form
from within the Windows Forms designer 1. Press tab to cycle forwards
through the controls on the form, including the form itself, or press
shift + tab to cycle backwards.

How To: view a control's properties from within the Windows Forms designer
1. Select the control you want using tab or shift + tab 2. Press the
applications key to bring up the context menu 3. Select properties

How To: drop a control on to a Windows Form 1. Ensure you are in the
Windows Forms designer 2. Bring up the toolbox (ctrl + alt + x) 3. Use
ctrl + page up and ctrl + page down to select the category of control you
want 4. Use up and down cursor to select the control you want to drop onto
the form, and press enter once you have made your selection

Using the windows forms designer: - To move between controls: 1. Press tab
- To view the properties for a control 1. Press the context menu key 2.
Select properties from the context menu 3. You will be placed in a tree
control, which contains different properties for that control.  You can
use the cursor keys to navigate this tree control, as you would do any
other tree control. 4. To edit a property, press tab to move from the tree
control over to the edit field, list box, etc. that contains the
property's value.  After you've changed the value, press shift + tab to
move back to the tree control.

To view different categories of control properties: * when in the controls
property window, explained above 1. Press shift + tab until JAWS announces
toolbar 2. Use left and right cursor keys to move between the buttons
representing the different property categories in the toolbar 3. Press
enter on the button to select that category of property 4. Press tab until
you get to the tree control

To place a control on the Windows forms designer: 1. When in the Windows
Forms Designer, press ctrl + alt + x to bring up the toolbox 2. Use up and
down cursor to move between the different control types, those that you
cannot currently place on a Windows Form will be marked as unavailable 4.
Press enter on the control type that you want to place on a form.

When you create a winforms project in vb.net or CSharp you will see a few
files in the project when you look at the Solution Explorer window. One of
them is usually called Form1. This, of course, is a default form
automatically supplied by the Visual Studio IDE. If you right mouse click
it you can bring up the Forms Designer. That is a graphical window where
you can drop controls on your form1. The You do this by going to the View
Menu Option and bringing up the Tool Box, arrowing down to a control like
a Label or TextBox and hitting enter on it. That control is then dropped
on Form1. You do this for any controls you want on the form. Now, the
form1, any label or TextBox controls have properties such as font type and
font size, foreground  color, background color size and position. You can
modify many characteristics of a form such as Form1 or controls you have
dropped on the formin the Properties Window for each item by either
tabbing in the forms Designer to a control or the form itself and then
selecting Properties Window from the View Menu. You can also right mouse
click any control and select the Properties option from a pull down menu
to get there. In the Properties Window you can manually set the size and
location of the form and any controls you dropped on it. This is the
method I use. You can also move controls around directly in the Forms
Designer by dragging them around. You can make them bigger, smaller as
well. This is something that you can do using JAWS, I use Windoweyes so do
not have that option available to me. In either case any changes you make
will be reflected on the Forms Designer and in the Properties Window for
the Form1 and for any controls you Drop on Form1. To layout a form you
think of the Form, Form1, as a big rectangle, a canvas where you will
arrange all your controls like labels and TextBoxes. You might want a
label just over top a TextBox so they read as one. If you have the text
property of a Label Control set to Enter Your Name and put a TextBox just
under it when you tab around the form and land on the TextBox your screen
reader would say something like TextBox, Enter Your Name. You can also put
the label to the left of the TextBox to achieve the same outcome.

If you just drop controls on a form in the Forms Designer you end up with
controls overlapping each other which is not good. You can the position of
each control on the form by setting it's location in
(DistanceFromLeftOfForm, DistanceFromTopOfForm) format in the Properties
Window for that control.  This can get messy trying to calculate the size
and position for every control on a form so there are a couple of tools in
the Tool Box that make it a little easier. The TableLayoutPanel is a table
on which you can drop controls and it automatically puts them in columns
and rows so you do not have to worry about aligning the controls by
calculating positions for every control. If you want a Label Control Just
OverTop A TextBox you would just drop your Label and TextBox controls on
top of the TableLayoutPanel control you  first dropped on the form. Then
you can right mouse click, or tab to the label and TextBox controls, bring
up the Properties Window for each control and set the cell coordinates. If
you put the Label Control in Column 0 Row 0 and put the TextBox in Column
0 Row 1 the label will automatically be sized and placed just over the
TextBox when the form is displayed. If you do label at column 0, Row 0 and
TextBox at column 1, Row 0 the label will be just left of the TextBox.
Both will look good to a sighted person and read well with a screen
reader. I have not used the Flow Control but that control will just put
any controls you drop on it to the right or left, above or below the last
control you dropped on the Flow Control. You decide how you want it to
work by setting the Flow Control's properties. So, You view a form as a
big rectangle. You drop controls on it and arrange them either using the
Properties Window for each control, by using a TableLayoutPanel to
automatically layout your form to some degree, or a Flow Panel which I
have not used. This is the 5000 foot view. Let me know where you want to
start. Your form name and a few controls you have on it and I will give
some specifics about Manual setting the location or using a
TableLayoutPanel if you want to go that root.

If you have tabbed to a control in the Form Designer, then any control you
drop from the tool box will be placed depending on what that selected
control was.

For example, if the control that you have selected on the form is a
container, such as a panel, tab strip or group box, then any control you
drop from the toolbox will be placed inside that control.  However, if you
have an "ordinary" control selected, like a label or a button, then
normally when you drop a control it will either be dropped directly on top
of it, or it will be placed immediately below the selected one. That is,
it will have the same Left property, but a larger Top property to make
sure it doesn't overlap.

Either way, once you have dropped the control on the form, press alt+Q to
get JAWS to tell you if the controls are overlapping, and you should be
notified if there is a problem. There are a few ways in which you can drop
controls on a blank area of the form.

1. Select any control on your form, and right click it.  There should be a
menu option in the context menu that appears that asks if you want to
select the container.  If the control is on the form, then the container
is the form, and choosing this option will select the form.  If the
control is inside another control, like a Table layout Panel, then
naturally the parent panel will be selected.  So in your case, tab to your
first layout panel, right click it and select the container from the
context menu.

2. Select any control on the form, and press f4 to open the Properties
sheet.  Press tab until you reach the list of components in the current
form, and use the up and down arrow keys to locate the form itself. Then
close the Properties sheet and you are now focussed on the Form.

You can tab to the form as one of the tab stops in the Form Designer.
That is, if you are on a control, hit tab until eventually you hear the
name of the form.  Then you should have the Form selected.

To add a context menu, go to form properties, locate ContextMenuStrip,
press f4, choose the dropped contextMenu from the list box and press enter
... you're done!

----------
MSAA

The scripts increase information and navigation options via MSAA.  The
MSAA global hot keys are assigned to the four keys from Alt+Shift+F9 to
Alt+Shift+F12.

The MSAAInfo key, Alt+Shift+F9, identifies child elements of the focused
control.  Three commands provide navigation alternatives.  The MSAAPick
command, Alt+Shift+F10, presents child elements of the focused control in
a standard listbox that includes support for initial letter navigation.
The MSAA default action is performed on the one chosen.  This capability
is used by the Alt+X hot key in the form designer, allowing one to add a
control to a form in a more efficient manner.  The MSAAJump command,
Alt+Shift+F11, prompts for text within a child element, and brings focus
to it, if found.  The MSAAJumpAgain command, Alt+Shift+F12, goes to the
next match.

----------
Code Editor

If you are having issues reading the code window you can try two things to
fix the problem. A.  Be sure the Error List, Task List, Solution Explorer,
Database Explorer (Express editions) or Server Explorer (Standard edition
and above), Bookmark window, Class View and Object Browser is not
interfearing.  Do this by opening the appropriate window from the "View"
menu or by pressing the associated keystrokes, and then closing it; this
is accomplished with control+f4 if "Tabbed Document" is checked for the
window that you wish to close.  If not, close the desired window by moving
to the window and then "Hide" the window from the "Window" menu. Refresh
the screen by pressing insert+escape.

One useful thing to know, although not a setting, is to keep windows, such
as the Error List, Class View, Server/Database Explorer, etc. closed
whilst you're not using them.  If these are left open, they can cause
interference with the off screen model view JAWS uses for the code editor.

The scripts support IntelliSense in the code editor, which may be manually
invoked with Control+Space or Control+J.  This makes it convenient to
browse and choose among language elements relevant in the current context.

Press F8 to mark the start of text to be selected.  Navigate to the end
point by whatever means, e.g., arrow keys or search commands -- without
having to hold down the Shift modifier key.  Press Shift+F8 to complete
the selection, extending from the starting anchor to the current position.
Operate on the selected text as usual, e.g., with Control+C or Control+X.

There is a performance penalty, especially with large blocks, though the
efficiency and reliability may still be improvements over the often
tedious manual method of holding the Shift key and repeatedly pressing
arrow keys, listening for what additional text has been selected, etc.,
until one reaches the intended end point of the selection.

Alt+Home goes to the first nonblank character on the current line and
announces it;  Alt+End goes to the last nonblank character on the current
line and announces it.

The scripts define a hot key to go to the error list, Alt+Shift+E, and
another to hide it, Alt+Shift+H.  The Go To command, Control+G, prompts
for a line number in the code editor and then goes to it.  Pressing enter
on an entry in the error list, however, should also go there.  The current
line and column may be checked with Alt+Delete.

When you hover over a function or method name in the code with the mouse
pointer a tool tip will pop up giving information about that function or
method.  This is different to the auto completion list as this feature is
used more to review code that has already been written than to write new
code.

IntelliSense has three components: the autocompletion list, a help balloon
that will display parameter info for a the current function/method, and
the Quick Info  help balloon.  From Sunfire's description it sounds as
though the Quick Info help balloon is being displayed.

I suspect that this is due to the fact that JAWS manipulates the position
of the mouse pointer when the user moves the caret.  The Quick Info help
balloon is displayed in response to hovering over a function or method
name with the mouse pointer.

In the code editor, the scripts automatically announce the focused
character after Home or End, or the line after Control+Home or
Control+End.

JAWSKey+Delete (Insert+Delete with the desktop keyboard layout) announces
the class name and member name at the position of the PC cursor.  Now, if
this key is pressed twice quickly, focus moves to the ComboBox for
selecting a class name in the current file.  You can then tab to the
ComboBox for selecting a member of that class (method, event, property, or
field).  Press Enter to move focus to the beginning of the code for the
selected class and member.  This use of a key pressed twice quickly is
similar to how Alt plus a number either says or moves to a header field of
an email message opened in Microsoft Outlook (with the scripts by Freedom
Scientific).

The margin settings in VS were accounting for the blank spaces to the left
of each line of code on the braile display.  There is an option under
Tools / Options / Text Editor called Display Indicator Margins.  If this
box is unchecked (checked by default) the white space to the left of each
line of code is eliminated on the braille display.

A couple of Visual Studio settings also help reading in the code editor
with a braille display:  unchecking display of the selection margin and
the indicator margin within the Tools/Options/Text Editor dialog.

The SayActiveCursor command, Alt+Delete, finds the line and column
position on the status bar.

----------
IDE Navigation

To view the code for a Windows form 1. When in the Windows Forms Designer,
select view > code

To view the Windows Forms Designer 1. When in the code editor, select view
designer

The shortcut for switching between open documents in VS2005 is ctrl+f6.

To change between different files in the project: 1. Bring up the Solution
Explorer, ctrl + alt + l 2. The solution explorer is a tree control, and
you can use the cursor keys to navigate it as with any other tree control.
3. The files are arranged in categories, which you can expand and collapse
by using left and right cursor 4. When you've selected the file you want
to open, press enter.

the Solution Explorer window may be invoked with either Control+Alt+L or
Control+W followed by l.  To confirm that VS is waiting for a second key
of a pair, the scripts say the word "chord" to indicate this state after
the first key is pressed (based on a status line message).

Alt+Shift+W lists open windows, Alt+Shift+0 invokes the start page.

How to: view another file 1. Open Solution Explorer (ctrl + alt + l) 2.
Solution Explorer is arranged as a tree control.  You can expand and
collapse at different granularities, such as solution, project, or file
type.  You can navigate around the solution explorer as you would any
other tree control using the cursor keys. 3. Once you've highlighted the
file you wish to view, press enter on it and it should open in the
relevant design surface or editor.

How To: switch to the code editor or the Windows Forms designer 1. If you
are in a Windows Forms project, drop down the view menu (alt + v) 2.
Select either 'designer', for the Windows Forms designer, or 'code', for
the code editor, from the menu.

To start a new project: 1. File > new > project 2. You will find yourself
in a tree control, which you can navigate in the same way as a standard
tree control.  This selects the category of project you want to create. 3.
Press tab, and you will be in a list of the project types for that
category.  You can use the cursor keys to move around this list, pressing
enter to select the project type you want to create. 4. Once you've
pressed enter, you should be in the Windows Forms Designer.

if I have say the Solution Explorer open (set as tabbed document) and I
have the error list open (set as tabbed document), I can cycle between the
two with Ctrl + F6.
I can close whichever one has focus by pressing Shift + Esc, or I can
close either one by pressing Ctrl + F4, or by going to the file menu and
selecting Close.

----------
Open Issues

A recurring question has been whether the scripts work with the web form
designer for ASP.NET development.  Unfortunately, the answer is no because
nonvisual information, equivalent to that provided by the Windows forms
designer, has not been found.  It is probably possible to acquire such
information through the VS extensibility model, which is not available in
the free Express Editions.  We would add JAWS scripts that exploit this
COM server if someone tackles the issue.  More information is available at
the web page "Automation and Extensibility for Visual Studio"
http://technet.microsoft.com/en-us/library/xc52cke4(VS.80).aspx

From a human computer interaction perspective, the main problem with the
Web Forms designer is not its accessibility but rather its usability.
This is to say that people can perform tasks, the only one that I know of
that cannot be performed at the moment is selecting child controls of a
container, but that the processes underlying the task are deemed to be
relatively inefficient.  One example, is that the process of altering the
size and position of a control on a Web Form requires someone to modify
the size and position properties through the properties window; there
isn't an alternative to this process at present because the Web Forms
designer doesn't display the size and position of a control as part of the
designer's UI, unlike the Windows Forms designer.

In general, however, difficulty is reported in determining or adjusting
the position and size of HTML controls with the designer, without having
to go in and out of the property page for each piece of information, or go
to the HTML code view instead.  I think the goal would be to achieve
similar functionality to that provided in the Windows forms designer,
which provides a lot of usability from the numeric keypad.  I think one
cause of the difficulty is that key information about a control is not
displayed on the status line of the web forms designer, as it is with the
Win forms one.  It may be necessary to exploit the extensibility model of
Visual Studio, accessing and manipulating its object model, in order to
achieve similar results. That model is not available in Visual Web
Developer Express Edition, but if used strategically, it could provide
more access than the current techniques that depend on the status line or
MSAA.

We are in need of JAWS scripters who can contribute code to improve the
experience of developing ASP.NET applications with Microsoft Visual Web
Developer.  A free Express Edition may be downloaded from
http://www.asp.net/

The web form designer is different enough from the Win form designer that
the current scripts do not work in that area.
----------

Summary of Keyboard Shortcuts

Getting Help
F1 - Get help for a selected object/window/line of code/keyword... Ctrl+F1
and then C - Contents. Ctrl+F1 and then D - Dynamic Help. Ctrl+F1 and then
F - Help Favorites. Ctrl+F1 and then H - How Do I. Ctrl+F1 and then I -
Index. Ctrl+F1 and then P - Index Results. Ctrl+F1 and then S - Search.

Navigating to Windows
f4, Or, Ctrl+W and then P - Properties. ctrl+f4 - Close active window if
"Tabbed Document" is checked on the "Window" menu. Shift+F4 - Property
Pages.

With the following navigation keys you have to press Ctrl+W and then
release the keystroke before pressing the assigned hot key.
C - Class View. E - Error List. J - Object Browser. L - Data Base
Explorer. O - Output. Q - Find Symbol Results. S - Solution Explorer. T -
Task List. U - Document Outline. W - Web Browser. X - Toolbox. (Or
Ctrl+Alt+X without the Ctrl+W before it.)

For the following press Ctrl+K first.
Ctrl+B - Code Snippets Manager.

Build
F6 - Build Solution.

Debugging
F5 - Start Debugging. Ctrl+F5 - Start Without Debugging. F9 - Toggle Break
Point. F10 - Step Over. F11 - Step In To.

With the following Debugging windows you must press and release Ctrl+D
before pressing the assigned keystroke.
E - Exceptions. I - Immediate Window.

Project and File Management
Ctrl+Alt+A - Add New Item. Shift+Alt+A - Add Existing Item. Shift+Alt+C -
Add Class. Shift+Alt+D - Show Data Sources. Ctrl+Shift+N - New Project.
Ctrl+Shift+O - Open Project. Ctrl+S - Save Selected Items. Ctrl+Shift+S -
Save All.

Find and/or Replace in File/Project
Press Ctrl+K first.
Ctrl+N - Next Bookmark. Ctrl+P - Previous Bookmark.
Alt+F12 - Find Symbol. Ctrl+F - Quick Find. Ctrl+Alt+F - Find in Files.
Ctrl+G - Go To. Ctrl+H - Quick Replace. Ctrl+Shift+H - Replace in Files.
----------

Related Links

Andreas Stefik's research page -- including dissertation on blind
programming
http://www.wsu.edu/~stefika/albums.html

ASP.NET
http://testsite.blind-planet.com/node/25

Blind Geeks
http://groups.yahoo.com/group/blindgeeks

BookShare
http://BookShare.org

CodePlex
http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython

EdSharp editor
http://EmpowermentZone.com/edsetup.exe

FileDir file manager
http://EmpowermentZone.com/dirsetup.exe

Fruit Basket Demonstration Programs
http://FruitBasketDemo.AlacornComputer.com

The Grab Bag
http://GrabBag.AlacornComputer.com

Interactive JScript
http://EmpowermentZone.com/ijs.zip

IronCOM -- access to .NET via a COM server
http://EmpowermentZone.com/comsetup.exe

JAWS scripts for Visual Studio 2005 or 2008
http://EmpowermentZone.com/msenv2005.exe
or
http://EmpowermentZone.com/msenv2005.zip

Microsoft Visual Studio on MSDN
http://msdn.microsoft.com/en-us/vstudio/default.aspx

.NET Framework and Developer Resources for Programming
http://msdn.microsoft.com/en-us/netframework/default.aspx

NonvisualDevelopment.org
http://NonvisualDevelopment.org

Official Microsoft WPF and Windows Forms Site
http://windowsclient.net/

program-l
//www.freelists.org/list/program-l

ProgrammingBlind
//www.freelists.org/list/programmingblind

Safari Books Online
http://safari.oreilly.com/

SharpDevelop
http://sharpdevelop.com/

SSIP for Windows
http://www.remoteaccessbridge.com/ssip

VB Lessons
http://tech.groups.yahoo.com/group/learnvbdotnet

Window-Eyes script package for Visual Studio 2008
https://www.gwmicro.com/Script_Central/Scripts/Script_Details/?scriptid=1065

----------
End of Document"

my site URL under my name, also has tips, tricks, and tutorials available on it for beginning programmers, and having had site and now being without it, i have some feel for how to lay things out, if you would like my advice on it and my thoughts on application layout, you can reach me at:
inthaneelf@xxxxxxxxxxxxxx

hope this helps (HTH),
inthane
proprietor, The Grab Bag,
for blind computer users and programmers
http://grabbag.alacorncomputer.com
Owner: Alacorn Computer Enterprises
"own the might and majesty of a Alacorn!"
www.alacorncomputer.com
Owner: Agemtree
"merchants in fine facetted and cabochon gemstones"
www.agemtree.com
----- Original Message ----- From: "sameer manohtra" <sameermanohtra@xxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Friday, June 12, 2009 6:39 AM
Subject: introduction, and first query


Hello guys,
My self sameer manohtra from India, and I’m a totally blind.
Due to my concealed interest in programming, I have started learning
the first programming language of my life that’s vb.net.
In fact I’m not that highly rational when comes the question of
programming, so will keep seeking your kind help.
I’m not very sure about all of you people as I’ve just found this list
when I was googling something on the same topic, but I’m quite sure
that all of you have nicely attained your endeavors, and in fact are
one of the prominents of society.
As I have subscribed on this list now, you will keep receiving silly
questions from my side, as I’m just an apprentice in all those stuffs
what you have already mastered.
Before asking any queries, would like to tell, that I’m using jaws
version 7.0 and VS 2005.
Further, scripts of jaws for vs 2005 is installed.
The first, and chief problem I’m facing from the first day of vb.net
learning, is that I’m unable to set the layout of my forms.
For example, I found it unattainable to set different components on
their right positions as buttons, text boxes, labels, group boxes, or
what so ever.
I mean, that  my cited counterparts always keeps telling, that my
forms looks so bizarre in terms of design.
Though jaws still navigates finely, and therefore I always find my
self unable satisfying my friends via designing, and proper placement
of my form items.
So, is there any specific technique from which we can set a relatively
good layout, so that at least cited people don’t finds it odd?
Mostly, my text boxes would be so lower side, button would be on top,
labels somewhere hidden, and all that pathetic what my friends tells
me.
Are  their any particular guidelines or sort of stuff about placing
these ToolBox components which can make it look user friendly?
In wait of your quick responses,
Sameer manohtra.
__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind


__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind

Other related posts:

  • » Re: a very, very long reply (those on pay by the bite may wish to skip it, to: introduction, and first query - The Elf