• RSS Feed

Enhanced Listboxes

Member listboxes appear when you type an object name followed by -> or dot. You see a list of methods and variables available to the object.

Completion listboxes appear when you type the prefix of a symbol and press Ctrl+Space. You see a list of symbols valid in the context that contain the characters you typed. While completion listboxes look and appear like member listboxes, they are available any time and contain more than just methods and variables.

More Often, More Accurate

With Visual Assist, both types of listboxes are available more often and with more accurate results. The listboxes are available for virtually all objects. You see listboxes without the waiting and wondering associated with default IntelliSense.

Enhanced Listboxes in C#

Enhanced listboxes are always enabled for C/C++. You can specify in the options dialog for Visual Assist whether or not you want them enabled for C#.

Colored Content

Configure Visual Assist so it applies enhanced syntax coloring to entries in member and completion listboxes. Your listboxes are easier to read.

Shrink When Possible

Save space and find your place in listboxes more easily by configuring listboxes to shrink when possible. Only entries beginning with your typed characters remain. Press backspace, and the list grows.

Acronyms and Shorthand

When listboxes are configured to shrink when possible, Acronyms and Shorthand may be used to further shrink the list.

Acronyms are short and simple abbreviations for symbols. Type an acronym and Visual Assist finds the symbol to which you refer.

Type rdc to select ReleaseDC in a listbox.

Shorthand is another, entirely new way to reference and expand symbols. Like acronyms, shorthand finds symbols without typing their full names. Shorthand works when you know only bits and pieces of names; i.e., you know less than necessary to use acronyms.

Type menu to see all System.Windows.Forms.Form members related to menus.

Enable acronyms and shorthand in listboxes in the options dialog.

Bold Non-Inherited Members

Determine origin of methods in member listboxes by electing to bold non-inherited members. The highlighting indicates an entry is local to a class. Know when a method is from a base class or overridden.

Enable bold in the options dialog.

List Non-Inherited Entries First

Access non-inherited entries quickly by having them listed first. Scroll to see entries from base classes.

Enable this feature in the options dialog. Use in combination with bolding of non-inherited members and shrinking for optimal efficiency.

This feature can also be enabled or disabled dynamically from the filtering toolbar.

Filtering Toolbar

Hover over a listbox and a filtering toolbar appears. Press buttons to include only members of a given kind (methods, fields, properties, events, etc.) or visibility (public, protected, private). Hover over a button to identify its meaning.

Select multiple types using Shift+Click and Ctrl+Click. Entries of each selected type remain in the list. Below, the entire public interface of the grid class is exposed by pressing all public filter buttons in the toolbar.

Click a depressed button to undo filtering.

Only buttons relevant to the content of a listbox appear. For example, buttons to show events appear for C# when valid in the current context, but not for unmanaged C/C++.

Buttons in a members listbox, after pressing -> or dot, appear for all members of the class. The buttons do not disappear as you type. Pressing a button is ineffective if the listbox no longer contains entries of the selected type.

Buttons in the filtering toolbar are not sticky; filtering is disabled each time you open a listbox.

Keyboard access to filtering is not available.

Accepting the listbox

You can configure which ways you want to accept the listboxes, in the Options dialog of Visual Assist, as you can see on the following screenshot:

Tab and Enter are self-explanatory: if you disable Tab, it just closes the listbox and a Tab character is inserted to the source editor. The same with Enter. So disabling these options means the listbox is getting ignored like if it wasn't even on the screen. You can still use the mouse though: double click accepts the listbox as well.

Additional character has meaning that varies with IDE and programming language:

Visual Studio 2012 and newer, C/C++

Specify additional characters that accept entries in the options dialog of Visual Studio. Add a space to the default list to make Visual Assist behave as it does in older IDEs.

Visual Studio 2010 and older, C/C++

Characters that accepts are those not valid in a symbol, including comma, space, and left parenthesis.

Visual Studio, C#

Specify additional characters that accept entries in the options dialog for Visual Studio. Select the dedicated option if you want entries "committed by pressing the space bar".


Press the Ctrl key while the list is displayed to cause the listbox to become transparent, revealing any code that may be obscured underneath. This feature works with all IDEs, and is shown below with Visual C++ 6.0.

Completion of #include

Visual Assist opens a listbox in C/C++ after typing #include and a double quote. Force open the listbox by pressing Ctrl+Space between the double quotes.

Use the angle bracket form of the #include directive, and Visual Assist shows appropriate system includes. Type part of a filename to filter the list.

Appropriate list content appears when you select a directory and type slash.

Completion within Comments and Strings

Visual Assist can open a listbox of completions when typing inside comments and strings. You must force open the listbox with Ctrl+Space.

Since symbols within comments and strings do not have context, completions are assembled from text strings within your file. Completions are unrelated to symbol definitions.

Choice of C/C++ Parser

For C/C++, you have the option to disable default IntelliSense and let Visual Assist populate listboxes using its own content. The content is taken from parsers built into Visual Assist. Select this mode if the IDE does not display accurate content in listboxes for your C/C++ code.

If Visual Assist displays less accurate content, e.g. for STL, enable the option to get content from default Intellisense.

Unlike with default Intellisense, Visual Assist does not include prebuilt symbol databases. Content for listboxes is extracted from libraries imported by your code or declared in C/C++ headers included by your source. Objects originate in system libraries such as ATL/WTL/STL, third-party libraries, and of course, your own code. There are no restrictions and you do not need to build before listboxes for new objects are available.

Regardless of settings, the content of listboxes after typing :: is always taken from default Intellisense. The :: may or may not follow a class or namespace.


The font used in all listboxes is the font of icon title specified in Control Panel|Display|Appearance|Advanced.

Private members appear in listboxes even when outside a class definition.

Member listboxes include operators and destructors.

Constructors are colored as methods in member listboxes, and included in public methods when filtering.