Menus


The IDE’s menus contain standard Visual Studio commands. These are generally commands that manipulate the project and the modules it contains. Some of the concepts are similar to those used by any Windows application (File image from book New, File image from book Save, Help image from book Contents), but many of the details are specific to Visual Studio programming, so the following sections describe them in a bit more detail.

The menus are customizable, so you can add, remove, and rearrange the menus and the items they contain. This can be quite confusing, however, if you later need to find a command that you have removed from its normal place in the menus. Some developers place extra commands in standard menus, particularly the Tools menu, but it is generally risky to remove standard menu items. Usually it is safest to leave the standard menus alone and make custom toolbars to hold customizations. For more information on this, see the section “Customize” later in this chapter.

Many of the menus’ most useful commands are also available in other ways. Many provide shortcut key combinations that make using them quick and easy. For example, Ctrl+N opens the New Project dialog box just as if you had selected the File image from book New Project menu command. If you find yourself using the same command very frequently, look in the menu and learn its keyboard shortcut to save time later.

Many menu commands are also available in standard toolbars. For example, the Debug toolbar contains many of the same commands that are in the Debug menu. If you use a set of menu commands frequently, you may want to display the corresponding toolbar to make using the commands easier.

Visual Studio also provides many commands through context menus. For example, if you right-click a project in the Solution Explorer, the context menu includes an Add Reference command that displays the Add Reference dialog box just as if you had invoked Project image from book Add Reference. Often it is easier to find a command by right-clicking an object related to whatever you want to do than it is to wander through the menus.

The following sections describe the general layout of the standard menus. You might want to open the menus in Visual Studio as you read these sections, so you can follow along.

Note that Visual Studio displays different menus and different commands in menus depending on what editor is active. For example, when you have a form open in the form editor, Visual Studio displays a Format menu that you can use to arrange controls on the form. When you have a code editor open, the Format menu is hidden because it doesn’t apply to code.

File

The File menu, shown in Figure 1-3, contains commands that deal with creating, opening, saving, and closing projects and project files.

image from book
Figure 1-3: The File menu holds commands that deal with the solution and its files.

Following is a description of the commands contained in the File menu and its submenus:

  • New Project - This command closes the current project and displays the dialog box shown in Figure 1-4. This dialog box lets you create new Windows applications, class libraries, console applications, control libraries, and more. Select the type of project you want to start and click OK.

    image from book
    Figure 1-4: The New Project dialog box lets you start various kinds of new projects.

  • New Web Site - This command closes the current project and lets you start a new web site project. It displays a dialog box where you can select the type of web site to create from among choices such as ASP.NET Web Site, ASP.NET Web Service, and Personal Web Site.

  • Open Project - This command closes the current project and lets you open an existing project.

  • Open Web Site - This command closes the current project and lets you open an existing web site project.

  • Open File - This command displays the dialog box shown in Figure 1-5 and lets you select a file to open. The IDE uses integrated editors to let you edit the new file. For example, the simple bitmap editor lets you set a bitmap’s size, change its number of colors, and draw on it. When you close the file, Visual Studio asks if you want to save the file and lets you decide where to put it. Note that this doesn’t automatically add the file to your current project. You can save the file and use the Project image from book Add Existing Item command if you want to do so.

    image from book
    Figure 1-5: The Open File dialog box lets you select files to view and edit.

  • Add - This submenu lets you add new items to the current solution. This can be very useful when you are building two closely related projects. For example, if you have a Windows forms application that calls routines written in a class library, you can load both projects into the same solution and work on them together. This submenu’s most useful commands for Visual Basic developers are New Project and Existing Project, which add a new or existing Visual Basic project to the solution.

  • Close - This command closes the current editor. In Figure 1-3, Form1 is open in the Form Designer editor. This command would close this editor.

  • Close Project - This command closes the entire project and all of the files it contains. If you have a solution open, this command is labeled Close Solution and it closes the entire application.

  • Save Form1.vb - This command saves the currently open file, in this example, Form1.vb.

  • Save Form1.vb As - This command lets you save the currently open file in a new file.

  • Save All - This command saves all modified files.

  • Export Template - This command displays the dialog box shown in Figure 1-6. The Export Template Wizard enables you to create project or item templates that you can use later.

    image from book
    Figure 1-6: The File image from book Export Template command displays this dialog box to help you create project or items templates that you can easily use in other projects.

  • Page Setup and Print - The Page Setup and Print commands let you configure printer settings and print the current document. These commands are enabled only when it makes sense to print the current file. For example, if you are viewing a source code file or a configuration file (which is XML text), you can use these commands. If you are viewing bitmap or a form in design mode, these commands are disabled.

  • Recent Files and Recent Projects - The Recent Files and Recent Projects submenus let you quickly reopen files, projects, and solutions that you have opened recently.

Edit

The Edit menu, shown in Figure 1-7, contains commands that deal with manipulating text and other objects. These include standard commands such as the Undo, Redo, Cut, Copy, Paste, and Delete commands that you’ve seen in other Windows applications.

image from book
Figure 1-7: The Edit menu holds commands that deal with manipulating text and other objects.

Following is a description of other commands associated with the Edit menu:

  • Find Symbol - This command lets you search the application for a program symbol rather than a simple string. You can search for such items as namespaces, types, interfaces, properties, methods, constants, and variables.

  • Quick Find - This command displays a find dialog box where you can search the project for specific text. A drop-down menu lets you indicate whether the search should include only the current document, all open documents, the current project, or the current block. Options let you determine such things as whether the text must match case or whole words.

  • Quick Replace - This command displays the same dialog box as the Quick Find command except with some extra controls. It includes a text box where you can specify replacement text, and buttons that let you replace the currently found text or all occurrences of the text.

  • Go To - This command lets you jump to a particular line number in the current file.

  • Insert File As Text - This command lets you select a file and insert its text into the current location.

  • Advanced - The Advanced submenu contains commands for performing more complex document formatting such as converting text to upper- or lowercase, controlling word wrap, and commenting and uncommenting code.

  • Bookmarks - The Bookmarks submenu lets you add, remove, and clear bookmarks, and move to the next or previous bookmark.

  • Outlining - The Outlining submenu lets you expand or collapse sections of code, and turn outlining on and off.

  • IntelliSense - The IntelliSense submenu gives access to IntelliSense features. For example, its List Members command makes IntelliSense display the current object’s properties, methods, and events.

  • Next Method/Previous Method - The Next Method and Previous Method commands move to the next or previous method or class in the current document.

View

The View menu, shown in Figure 1-8, contains commands that let you hide or display different windows and toolbars in the Visual Studio IDE.

image from book
Figure 1-8: The View menu lets you show and hide IDE windows and toolbars.

Following is a description of commands associated with the View menu:

  • Code - The Code command opens the selected file in a code editor window. For example, to edit a form’s code, you can click on the form in the Solution Explorer and then select View image from book Code.

  • Designer - The Designer command opens the selected file in a graphical editor if one is defined for that type of file. For example, if the file is a form, Visual Studio opens it in a graphical form editor. If the file is a class module or a code module, the View menu hides this command because Visual Studio doesn’t have a graphical editor for those file types.

  • Standard windows - The next several commands shown in Figure 1-8 display the standard IDE windows Server Explorer, Solution Explorer, Object Browser, Error List, Properties Window, and Toolbox. These commands are handy if you have removed one of the windows and want to get it back. The most useful of these windows are described later in this chapter.

  • Other Windows - The Other Windows submenu lists other standard menus that are not listed in the View menu itself. These include the Class View, Command Window, Document Outline, Output, Task List, and Macro Explorer.

  • Tab Order - If the currently visible document is a form that contains controls, the Tab Order command displays the tab order on top of each control. You can click the controls in the order you want them to have to set their tab order’s quickly and easily.

  • Toolbars - The Toolbars submenu lets you toggle the currently defined toolbars to hide or display them. This submenu lists the standard toolbars in addition to any custom toolbars you have created.

Tip 

Rather than modifying standard menus and toolbars, hide them and create new ones to customize. Then you can later restore the original standard menus and toolbars if necessary.

  • Full Screen - The Full Screen command hides all toolbars and windows except for any editor windows that you currently have open. It also hides the Windows taskbar so that the IDE occupies as much space as possible. This gives you the most space possible for working with the files you have open. The command adds a small box to the title bar containing a Full Screen button that you can click to end full-screen mode.

  • Property Pages - This command displays the current item’s property pages. For example, if you select an application in Solution Explorer, this command displays the application’s property pages similar to those shown in Figure 1-9.

    image from book
    Figure 1-9: The View menu’s Property Pages command displays an application’s property pages.

Project

The Project menu shown in Figure 1-10 contains commands that let you add and remove items to and from the project. Which commands are available depends on the currently selected item.

image from book
Figure 1-10: The Project menu lets you add files and references to the currently selected project.

Following is a description of commands associated with the Project menu:

  • New items - The first several commands let you add new items to the project. These commands are fairly self-explanatory. For example, the Add Class command adds a new class module to the project. Later chapters explain how to use each of these file types.

  • Add New Item - The Add New Item command displays the dialog shown in Figure 1-11. The dialog box lets you select from a wide assortment of items such as text files, bitmap files, and class modules.

    image from book
    Figure 1-11: The Project menu’s Add New Item command lets you add a wide variety of items to the project.

  • Add Existing Item - The Add Existing Item command lets you browse for a file and add it to the project.

  • Exclude From Project - This command removes the selected item from the project. Note that this does not delete the item’s file; it just removes it from the project.

  • Show All Files - The Show All Files command makes Solution Explorer list files that are normally hidden. These include resource files corresponding to forms, hidden partial classes such as designer-generated form code, resource files, and files in the obj and bin directories that are automatically created by Visual Studio when it compiles your program. Normally, you don’t need to work with these files, so they are hidden. Select this command to show them. Select the command again to hide them.

  • Add Reference - The Add Reference command displays the dialog shown in Figure 1-12. Select the category of the external object, class, or library that you want to find. For a .NET component, select the .NET tab. For a Component Object Model (COM) component such as an ActiveX library or control built using Visual Basic 6, select the COM tab. Select the Projects tab to add a reference to another Visual Studio project. Click the Browse tab to manually locate the file you want to reference.

    image from book
    Figure 1-12: Use the Add Reference dialog box to add references to libraries.

    Scroll through the list of references until you find the one you want and select it. You can use Shift+Click and Ctrl+Click to select more than one library at the same time. When you have made your selections, click OK to add the references to the project. After you have added a reference to the project, your code can refer to the reference’s public objects. For example, if the file MyMathLibrary.dll defines a class named MathTools and that class defines a public function Fibonacci, a project with a reference to this DLL could use the following code.

      Dim math_tools As New MyMathLibrary.MathTools MsgBox("Fib(5) = " & math_tools.Fibonacci(5)) 

  • Add Web Reference - The Add Web Reference command displays the dialog box shown in Figure 1-13. You can use this dialog box to find web services and add references to them so your project can invoke them across the Internet.

    image from book
    Figure 1-13: Use the Add Web Reference dialog to add references to web services.

  • WindowsApplication1 Properties - This command displays the application’s property pages shown in Figure 1-14.

    image from book
    Figure 1-14: Property pages let you set a project’s properties.

In Figure 1-14, the Toolbox, Error List, Task List, and other secondary windows have been hidden to make more room for the large Properties page. You can see these other windows’ icons lurking along the left and bottom edges of the figure.

Click the tabs on the left to view and modify different types of application settings. You can leave many of the property values alone and many are set in other ways. For example, by default, the Assembly name and Root namespace values shown in Figure 1-14 are set to the name of the project when you first create it.

There are three properties on the Compile tab shown in Figure 1-15 that deserve special mention.

image from book
Figure 1-15: The Compile tab contains important properties for controlling code generation.

First, Option Explicit determines whether Visual Basic requires you to declare all variables before using them. Leaving this option turned off can sometimes lead to subtle bugs. For example, the following code is intended to print a list of even numbers between 0 and 10. Unfortunately, a typographical error makes the Debug.WriteLine statement print the value of the variable j not i. Because j is never initialized, the code prints out a bunch of blank values. If you set Option Explicit to On, the compiler complains that the variable j is not declared and the problem is easy to fix.

  For i = 1 To 10     If i Mod 2 = 0 Then Debug.WriteLine(j) Next i 

The second compiler option is Option Strict. When this option is turned off, Visual Studio allows your code to implicitly convert from one data type to another, even if the types are not always compatible. For example, Visual Basic will allow the following code to try to copy the string s into the integer i. If the value in the string happens to be a number, as in the first case, this works. If the string is not a number, as in the second case, this fails at runtime.

  Dim i As Integer Dim s As String s = "10" i = s        ' This works. s = "Hello" i = s        ' This Fails. 

If you set Option Strict to On, the IDE warns you that the two data types are incompatible, so you can easily resolve the problem while you are writing the code. You can still use conversion functions such as CInt, Int, and Integer.Parse to convert a string into an Integer, but you must take explicit action to do so. This makes you think about the code and reduces the chances that the conversion is just an accident. This also helps you use the correct data types and avoid unnecessary conversions that may make your program slower.

To avoid confusion and long debugging sessions, you should always set Option Explicit On and Option Strict On. You can turn them on for a project using the project’s Property pages. To make them on by default for new projects, open the Tools menu and select Options. Open the Projects and Solutions folder, select the VB Defaults page, and turn the options on, as shown in Figure 1-16.

image from book
Figure 1-16: The Projects and Solutions folder’s VB Defaults page lets you set default values for Option Explicit and Option Strict.

Tip 

You will see many more options in Figure 1-16 if the Show all settings check box is selected.

The final compiler directive, Option Compare, can take the values Binary or Text. If you set Option Compare to Binary, Visual Basic compares strings using their binary representations. If you set Option Compare to Text, Visual Basic compares strings using a case-insensitive method that depends on your computer’s localization settings. Option Compare Binary is faster, but may not always produce the result you want.

Build

The Build menu, shown in Figure 1-17, contains commands that let you compile projects within a solution.

image from book
Figure 1-17: The Build menu lets you compile projects.

Following is a description of commands associated with the Build menu:

  • Build WindowsApplication1 - This command compiles the currently selected project, in this case the project WindowsApplication1. Visual Studio examines the project’s files to see if any have changed since the last time it compiled the project. If any of the files have changed, Visual Studio recompiles those files to update the result.

  • Rebuild WindowsApplication1 - This command recompiles the currently selected project from scratch. The Build WindowsApplication1 command compiles only the files that you have modified since they were last built. This command rebuilds every file.

  • Clean WindowsApplication1 - This command removes temporary and intermediate files that were created while building the application, leaving only the source files and the final result .exe and .dll files.

  • Publish WindowsApplication1 - This command displays the Publish Wizard shown in Figure 1-18. It can walk you through the process of making your application available for distribution on a local file, file share, FTP site, or web site.

    image from book
    Figure 1-18: The Publish Wizard helps you deploy an application.

  • Run Code Analysis on WindowsApplication1 - This command makes Visual Studio perform a code analysis of your project and describe potential problems. Figure 1-19 shows the results for one application. Many of the warnings describe globalization issues that Visual Basic does not handle automatically.

image from book
Figure 1-19: The Run Code Analysis command displays potential problems in an application.

Debug

The Debug menu, shown in Figure 1-20, contains commands that help you debug a program. These commands help you run the program in the debugger, move through the code, set and clear breakpoints, and generally follow the code’s execution to see what it’s doing and hopefully what it’s doing wrong.

image from book
Figure 1-20: The Debug menu contains commands for debugging an application.

Effectively using these debugging techniques can make finding problems in the code much easier, so you should spend some time learning how to use these tools. They can mean the difference between finding a tricky error in minute, hours, or days.

The commands visible in the Debug window change, depending on several conditions such as the type of file you have open, whether the program is running, the line of code that contains the cursor, and whether that line contains a breakpoint. This section discusses the menu items shown in Figure 1-20. You will see other menus items under different circumstances.

The following list briefly describes the Debug menu’s commands:

  • Windows - This submenu’s commands display other debugging-related windows. This sub-menu is described in more detail in the following section, “The Debug image from book Windows Submenu.”

  • Continue - This command resumes program execution. The program runs until it finishes, it reaches another breakpoint, or you stop it.

  • Break All - This command stops execution of all programs running within the debugger. This may include more than one program if you are debugging more than one application at the same time. This can be useful, for example, if two programs work closely together.

  • Stop Debugging - This command halts the program’s execution and ends its debugging session. The program stops immediately, so it does not get a chance to execute any cleanup code.

  • Step Into - This command makes the debugger execute the current line of code. If that code invokes a function, subroutine, or some other procedure, the point of execution moves into that procedure. It is not always obvious whether a line of code invokes a procedure. For example, a line of code that sets an object’s property may be simply setting a value or invoking a property procedure.

  • Step Over - This command makes the debugger execute the current line of code. If that code invokes a function, subroutine, or some other procedure, the debugger calls that routine but does not step into it, so you don’t need to step through its code. However, if a breakpoint is set inside that routine, execution will stop at the breakpoint.

  • Step Out - This command makes the debugger run until it leaves the routine it is currently executing. Execution pauses when the program reaches the line of code that called this routine.

  • QuickWatch - This command displays a dialog box that gives information about the selected code object. Figure 1-21 shows the dialog box displaying information about a TextBox control named txtDirectory. If you look closely, you can see some of the control’s properties including TabIndex, TabStop, Tag, and Text. When you right-click on a property’s value and select Edit Value, you can change it within the dialog box. If you click the Add Watch button, the debugger adds the expression to the Watch window shown in Figure 1-22. You can also highlight a variable’s name in the code and drag and drop it into a Watch window to create a watch very quickly. Right-click a watch in this window and select Delete Watch to remove it.

    image from book
    Figure 1-21: The QuickWatch dialog box lets you examine an object’s properties and optionally set a new watch on it.

    image from book
    Figure 1-22: The Watch window lets you easily track expression values.

  • Exceptions - This command displays the dialog box shown in Figure 1-23. When you select a Thrown check box, the debugger stops whenever the selected type of error occurs. If you select a User-unhandled check box, the debugger stops when the selected type of error occurs and the program does not catch it with error-handling code. For example, suppose that your code calls a subroutine that causes a divide-by-zero exception. Use the dialog box to select Common Language Runtime Exceptions/System/System.DivideByZeroException (use the Find button to find it quickly). When you select the Thrown check box, the debugger stops in the subroutine when the divide-by-zero exception occurs, even if the code is protected by an error handler. When you select the User-unhandled check box, the debugger stops only if no error handler is active when the error occurs.

    image from book
    Figure 1-23: The Exceptions dialog box lets you determine how Visual Basic handles uncaught exceptions.

  • Toggle Breakpoint - This command toggles whether the current code line contains a breakpoint. When execution reaches a line with an active breakpoint, execution pauses so you can examine the code and program variables. You can also toggle a line’s breakpoint by clicking on the margin to the left of the line in the code editor. In Figure 1-20, line number 5 displays a circle containing an arrow on the left, indicating that it has a breakpoint (the circle) and that it is the current line of execution (the arrow). The following line contains a disabled breakpoint, indicated by a hollow circle in the left margin.

  • New Breakpoint - This submenu contains the Break At Function command. This command displays a dialog box that lets you specify a function where the program should break.

  • Delete All Breakpoints - This command removes all breakpoints from the entire solution.

The Debug image from book Windows Submenu

The Debug menu’s Windows submenu, shown in Figure 1-24, contains commands that display debugging-related windows. The following list briefly describes these commands. The two sections that follow describe some of the more complicated windows in greater detail.

image from book
Figure 1-24: The Debug menu’s Windows submenu contains commands that display debugging-related windows.

  • Immediate - This command displays the Immediate window, where you can type and execute ad hoc Visual Basic statements. The section “The Command and Immediate Windows” later in this chapter describes this window in a bit more detail.

  • Locals - This command displays the Locals window shown in Figure 1-25. The Locals window displays the values of variables defined in the local context. To change a value, click it and enter the new value. Click the plus and minus signs to the left of a value to expand or collapse it. For example, the Me entry shown in Figure 1-25 is an object with lots of properties that have their own values. Click the plus sign to expand the object’s entry and view its properties. Those properties may also be objects, so you may be able to expand them further.

    image from book
    Figure 1-25: The Locals window displays the values of variables defined in the local context.

  • Breakpoints - This command displays the Breakpoints window shown in Figure 1-26. This dialog box shows the breakpoints, their locations, and their conditions. Select or clear the check boxes on the left to enable or disable breakpoints. Right-click a breakpoint to edit its location, condition, hit count, and action. Use the dialog box’s toolbar to create a new function breakpoint, delete a breakpoint, delete all breakpoints, enable or disable all breakpoints, go to a breakpoint’s source code, and change the columns displayed by the dialog. Right-click a breakpoint to change its condition (a condition that determines whether the breakpoint is activated), hit count (a count that determines whether the breakpoint is activated), and When Hit (action to take when activated). See the section “The Breakpoints Window” later in this chapter for more detail.

    image from book
    Figure 1-26: The Breakpoints window helps you manage breakpoints.

  • Output - This command displays the Output window. This window displays compilation results and output produced by Debug and Trace statements.

  • Autos - This command displays the Autos window shown in Figure 1-27. This window displays the values of local and global variables used in the current line of code and in the three lines before and after it.

    image from book
    Figure 1-27: The Autos window displays the variables used in the current code statement and the threestatements before and the three after.

  • Call Stack - This command displays the Call Stack window shown in Figure 1-28. This window lists the routines that have called other routines to reach the program’s current point of execution. In this example, the program is at the line 32 in function FindEmployee. That function was called by function SearchDatabase at line 15, and that function was called by the Form_Load event handler. Double-click a line to jump to the corresponding code in the program’s call stack. This technique lets you move up the call stack to examine the code that called the routines that are running. This can be a very effective technique when you need to find out what code is calling a particular routine.

    image from book
    Figure 1-28: The Call Stack window shows which routines have called which to get to the program’s current point of execution.

  • Threads - This command displays the Threads window shown in Figure 1-29. Athread is a separate execution path that is running. A multithreaded application can have several threads running to perform more than one task at the same time. The Threads window lets you control the threads’ priority and suspended status. The last line has the location WindowsApplication1.Form1 .FindEmployee, indicating that this thread is executing the FindEmployee routine in the Form1 module in program WindowsApplication1. The arrow on the left indicates that this is the currently active thread.

    image from book
    Figure 1-29: The Threads window displays information about the program’s threads of execution.

    Right-click a thread and select Freeze to suspend it. Select Thaw to make it resume execution. Double-click a thread or right-click it and select Switch To Thread to activate that thread.

  • Watch - The Watch submenu contains the commands Watch 1, Watch 2, Watch 3, and Watch 4. These commands display four different watch windows. When you create a watch using the Debug menu’s QuickWatch command described earlier, the new watch is placed in the Watch 1 window (shown in Figure 1-22). You can click and drag watches from one watch window to another to make a copy of the watch in the second window. You can also click the Name column in the empty line at the bottom of a watch window and enter an expression to watch. One useful IDE trick is to drag watch windows 2, 3, and 4 onto Watch 1 so that they all become tabs on the same window. Then you can easily use the tabs to group and examine four sets of watches.

  • Modules - This command displays the Modules window shown in Figure 1-30. This window displays information about the DLL and EXE files used by the program. It shows each module’s file name and path. It indicates whether the module is optimized, whether it is your code (versus an installed library), and whether debugging symbols are loaded. The window shows each module’s load order (lower-numbered modules are loaded first), the version, and timestamp. Click on a column to sort the modules by that column.

    image from book
    Figure 1-30: The Modules window displays information about the modules used by the program.

  • Script Explorer - This command displays the Script Explorer, which can help you debug script code written in VBScript or JScript.

  • Processes - This window lists processes that are attached to the Visual Studio session. This includes any programs launched by Visual Studio and processes that you attached to using the Debug menu’s Attach to Process command.

The Breakpoints Window

A breakpoint is a line of code that you have flagged to stop execution. When the program reaches that line, execution stops and Visual Studio displays the code in a code editor window. This lets you examine or set variables, see which routine called the one containing the code, and otherwise try to figure out what the code is doing.

The Breakpoints window lists all the breakpoints you have defined for the program. This is useful for a couple of reasons. First, if you define a lot of breakpoints, it can be hard to find them all later. While other commands let you disable, enable, or remove all of the breakpoints at once, there are times when you may need to find a particular breakpoint.

A common debugging strategy is to comment out broken code, add new code, and set a breakpoint near the modification so that you can see how the new code works. When you have finished testing the code, you probably want to remove either the old or new code, so you don’t want to blindly remove all of the program’s breakpoints. The Breakpoints window lists all of the breakpoints and, if you double-click a breakpoint in the list, you can easily jump to the code that holds it.

The Breakpoints window also lets you modify the breakpoints you have defined. Select or clear the boxes on the left to enable or disable breakpoints. Use the dialog’s toolbar to enable or disable all breakpoints, clear all breakpoints, or jump to a breakpoint’s source code.

Right-click a breakpoint and select Condition to display the dialog shown in Figure 1-31. By default, a breakpoint stops execution whenever it is reached. You can use this dialog box to add an additional condition that determines whether the breakpoint activates when reached. In this example, the breakpoint stops execution only if the expression (i = j) And (i > 20) is True when the code reaches the breakpoint. Note that specifying a breakpoint condition can slow execution considerably.

image from book
Figure 1-31: The Breakpoint Condition dialog box lets you specify a condition that determines whether Visual Studio stops at the breakpoint.

Right-click a breakpoint and select Hit Count to display the Breakpoint Hit Count dialog box shown in Figure 1-32. Each time the code reaches a breakpoint, it increments the breakpoint’s hit count. You can use this dialog box to make the breakpoint’s activation depend on the hit count’s value.

image from book
Figure 1-32: The Breakpoint Hit Count dialog box lets you make a breakpoint’s activation depend on the number of times the code has reached it.

From the drop-down list you can select the options “break always,” “break when the hit count is equal to,” “break when the hit count is a multiple of,” or “break when the hit count is greater than or equal to.” If you select any but the first option, you can enter a value in the text box and the program will pause execution when the breakpoint has been reached the appropriate number of times. For example, if you select the option “break when the hit count is a multiple of” and enter 2 into the text box, then execution will pause every other time it reaches the breakpoint.

Right-click a breakpoint and select When Hit to display the When Breakpoint Is Hit dialog box shown in Figure 1-33. This dialog box lets you specify the actions that Visual Basic takes when the breakpoint is activated. Select the Print a message check box to make the program display a message in the Output window. Select the Run a macro check box to make the program execute a VBA macro. Select the Continue execution check box to make the program continue running without stopping.

image from book
Figure 1-33: The When Breakpoint Is Hit dialog box lets you determine what actions Visual Basic takes when the breakpoint is activated.

The Command and Immediate Windows

The Command and Immediate windows enable you to execute commands while the program is stopped in the debugger. One of the more useful commands in each of these windows is the Debug.Print statement. For example, the command Debug.Print x displays the value of the variable x.

You can use a question mark as an abbreviation for Debug.Print. The following text shows how the command might appear in the Command window. Here the > symbol is the command prompt provided by the window and 123 is the result: the value of variable x. In the Immediate window, the statement would not include the > character.

  >? x 123 

The command >immed tells the Command window to open the Immediate window. Conversely, the command >cmd tells the Immediate window to open the Command window.

Although there is some overlap between these two windows, they serve two mostly different purposes. The Command window can issue commands to the Visual Studio IDE. Typically, these are commands that appear in menus or toolbars, or that could appear in menus and toolbars. For example, the following command uses the Debug menu’s QuickWatch command to open a QuickWatch window for the variable first_name.

  >Debug.QuickWatch first_name 

One particularly useful command is Tools.Alias. This command lists command aliases defined by the IDE. For example, it indicates that ? is the alias for Debug.Print and that ?? is the alias for Debug.QuickWatch.

The Command window includes some IntelliSense support. If you type the name of a menu, for example Debug or Tools, IntelliSense will display the commands available within that menu.

While the Command window issues commands to the IDE, the Immediate window executes Visual Basic statements. For example, suppose that you have written a subroutine named CheckPrinter. Then the following statement in the Immediate window executes that subroutine.

  CheckPrinter 

Executing subroutines in the Immediate window lets you quickly and easily test routines without writing user interface code to handle all possible situations. You can call a subroutine or function, passing it different parameters to see what happens. If you set breakpoints within the routine, the debugger will pause there.

Similarly, you can also set the values of global variables and then call routines that use them. The following Immediate window commands set the value of the m_PrinterName variable and then call the CheckPrinter subroutine.

  m_PrinterName = "LP_REMOTE" CheckPrinter 

You can execute much more complex statements in the Command and Immediate windows. For example, suppose that your program uses the following statement to open a file for reading.

  Dim fs As FileStream = File.OpenRead( _     "C:\Program Files\Customer Orders\Summary" & _     datetime.Now().ToString("yymmdd") & ".dat") 

Suppose that the program is failing because some other part of the program is deleting the file. You can type the following code (all on one line) into the Immediate window to see if the file exists. As you step through different pieces of the code, you can use this statement again to see if the file has been deleted.

  ?System.IO.File.Exists("C:\Program Files\Customer Orders\Summary" & _ DateTime.Now().ToString("yymmdd") & ".dat") 

The window evaluates the complicated string expression to produce a file name. It then uses the System.IO.File.Exists command to determine whether the file exists and displays True or False accordingly.

Data

The Data menu, shown in Figure 1-34, contains commands that deal with data and data sources. Some of the commands in this menu are only visible and enabled if you are designing a form and that form contains the proper data objects.

image from book
Figure 1-34: The Data menu holds commands that deal with datasets.

The following list describes commands shown in Figure 1-34:

  • Show Data Sources - This command displays the Data Sources window, where you can work with the program’s data sources. For example, you can drag and drop tables and fields from this window onto a form to create controls bound to the data.

  • Preview Data - This command displays a dialog box that lets you load data into a DataSet and view it at design time.

  • Add New Data Source - This command displays the Data Source Configuration Wizard, which walks you through the process of adding a data source to the project.

  • Add Query - This command is available when you are designing a form and have selected a data bound control such as a DataGridView or bound TextBox. This command opens a dialog where you can specify a query to add to the form. This places a ToolStrip on the form containing ToolStripButtons that populate the bound control by executing the query.

Format

The Format menu, shown in Figure 1-35, contains commands that arrange controls on a form. The following list describes the Format menu’s submenus:

image from book
Figure 1-35: The Format menu contains commands for formatting and arranging controls on a form.

  • Align - This submenu contains commands that align the controls you have selected in various ways. It contains the commands Lefts, Centers, Rights, Tops, Middles, Bottoms, and to Grid. For example, the Lefts command aligns the controls so their left edges line up nicely. The to Grid command snaps the controls to the nearest grid position. This is useful if you have moved some controls off of the alignment grid, possibly by using one of the other Align commands or by changing a control’s Location property in the Properties window.

  • Make Same Size - This submenu contains commands that change the size of the controls you have selected. It contains the commands Width, Height, Both, and Size to Grid. The Size to Grid command adjusts the selected controls’ widths so that they are a multiple of the alignment grid size. The other commands give the selected controls the same width, height, or both.

  • Horizontal Spacing - This submenu contains commands that change the spacing between the controls you have selected. It contains the commands Make Equal, Increase, Decrease, and Remove. For example, if you have selected three controls, the Make Equal command makes the spacing between the first two the same as the spacing between the second two. This can be handy for making columns that line up nicely.

  • Vertical Spacing - This submenu contains the same commands as the Horizontal Spacing sub-menu except it adjusts the controls’ vertical spacing rather than their horizontal spacing.

  • Center in Form - This submenu contains commands that center the selected controls on the form. It contains the commands Horizontally and Vertically. Note that the selected controls are centered as a group; they are not centered individually on top of each other.

  • Order - This submenu contains the commands Bring to Front and Send to Back, which move the selected controls to the top or bottom of the stacking order.

  • Lock Controls - This command locks all of the controls on the form so that they cannot be moved or resized by clicking and dragging. You can still move and resize the controls by changing their Location and Size properties in the Properties window. Invoking this command again unlocks the controls. Locking the controls can be useful if you have spent a long time positioning them precisely. After they are locked, you can work on the controls without fear of accidentally messing up your careful design.

Tools

The Tools menu, shown in Figure 1-36, contains miscellaneous tools that do not fit particularly well in the other menus. It also contains a few duplicates of commands in other menus and commands that modify the IDE itself.

image from book
Figure 1-36: The Tools menu contains miscellaneous commands and commands that modify the IDE.

The following list describes the Tools menu’s most useful commands. Note that not all of these commands are shown in Figure 1-36; some only appear when another type of editor is open.

  • Attach to Process - This command displays the dialog box shown in Figure 1-22 to let you attach the debugger to a running process. Select the process to which you want to attach and click Attach.

  • Connect to Device - This command lets you connect to a physical device or emulator such as Pocket PC or Smartphone devices or emulators. You can use the devices and emulators to test software you are writing for devices other than the Windows platform where you are building the application.

  • Connect to Database - This command displays the Connection Properties dialog box, where you can define a database connection. The connection is added to the Server Explorer window. You can later use the connection to define data adapters and other objects that use a database connection.

  • Connect to Server - This command displays a dialog box that lets you connect to a database server.

  • Code Snippets Manager - This command displays the Code Snippets Manager, which you can use to add and remove code snippets.

  • Choose Toolbox Items - This command displays a dialog box that lets you select the tools displayed in the Toolbox. For instance, by default the OleDbDataAdapater and OleDbConnection components are not included in the Toolbox. You can use this command to add them if you will use them frequently.

  • Add-in Manager - This command displays the Add-in Manager, which lists the add-in projects registered on the computer. You can use the Add-in Manager to enable or disable these add-ins.

  • Macros - The Macros submenu contains commands that help you create, edit, and execute macros. See the section “Macros” later in this chapter for details.

  • Upgrade Visual Basic 6 Code - This command displays the dialog box shown in Figure 1-37. If you enter Visual Basic 6 code and click Upgrade, the dialog box translates the code into Visual Basic 2005 and inserts it at the current position in the code. Note that the result is not always perfect, so you should always review it. For example, the dialog box translates the code shown in Figure 1-37 into the following code.

    image from book
    Figure 1-37: This dialog helps convert Visual Basic 6 code into Visual Basic 2005 code.

      'UPGRADE_WARNING: Lower bound of array values was changed from 1 to 0. Click for more: 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword= ""' Dim values(10) As Short Dim i As Short For i = 1 To 10     values(i) = i Next i 

    In this example, you would at least need to re-evaluate the logic to account for the new array’s bounds starting at zero instead of one. You might also want to change the data types of the array and variable i from Short to Integer.

  • External Tools - This command displays a dialog box that lets you add and remove commands from the Tools menu. For example, you could add a command to launch WordPad, MS Paint, WinZip, and other handy utilities from the Tools menu.

  • Performance Tools - This submenu contains performance profiling tools such as the Performance Wizard and the New Performance Session command.

  • Device Emulation Manager - This command displays the Device Emulation Manager, which lets you connect, reset, shut down, and otherwise manipulate device emulators.

  • Import/Export Settings - This command displays a dialog box that you can use to save, restore, or reset your Visual Studio IDE settings. Use this dialog box to configure your development environments for general development, team test, Visual Basic, C#, C++, J#, or Web development.

  • Customize - This command allows you to customize the Visual Studio IDE. See the “Customize” section later in this chapter for details.

  • Options - This command allows you to specify options for the Visual Studio IDE. See the “Options” section later in this chapter for details.

Macros

The Macros submenu, shown in Figure 1-38, provides commands that help you create, edit, and execute macros that automate repetitive Visual Studio programming chores. If you must perform a series of actions many times, you can record a macro that performs them. Then you can call the macro repeatedly to perform the actions rather than executing them manually.

image from book
Figure 1-38: The Macros submenu contains commands for recording and executing macros.

Tip 

Some examples of macros that I’ve used in the past include code that: arranges controls in unusual ways, such as spacing picture boxes around the edge of a circle; that generates a long series of statements that does the same thing to a collection of text values (for example, makes Select Case statements for a series of text values); sets up a new dialog box by creating the OK and Cancel buttons, positioning them, setting their DialogResult properties, and setting the form’s AcceptButton and CancelButton properties; and building a name and address form with labels and text boxes that have appropriate Anchor properties. Author John Mueller (www.mwt.net/~jmueller) uses similar macros to set up dialog boxes, create standard menus, and build standard event handlers. There are other ways to do these things, such as saving a pre-built dialog box for use as a template, or by using code snippets described later in this chapter, but macros are quick and easy.

After you have recorded a macro, you can edit the macro’s code and make changes. For example, if you want to run the code a certain number of times, you can include it in a For loop. Often, a quick inspection of the code lets you figure out how to modify the code to perform actions similar to (but not exactly the same as) the actions you originally recorded.

Most of the commands in the macros submenu are self-explanatory. Use the Record TemporaryMacro command to record a macro for quick temporary use. When you select this command, a small window pops up that contains buttons you can click to suspend, finish, or cancel recording. Visual Studio saves the commands you execute in a macro named TemporaryMacro.

Select Run TemporaryMacro to run this macro. If you record a new TemporaryMacro, it overwrites the existing one without warning you. Select the Save TemporaryMacro command to rename the macro so you can record a new TemporaryMacro without destroying this one.

Select the Macro Explorer command to display the window shown in Figure 1-39. If you right-click a macro, the resulting pop-up menu lets you run, edit, rename, or delete the macro. Notice the Macro Explorer’s predefined Samples section, which contains example macros that you can use or modify for your own use.

image from book
Figure 1-39: The Macro Explorer lets you edit, run, and delete macros.

Sometimes when you perform a series of programming tasks many times, there are better ways to approach the problem than writing a macro. For example, you may be able to make your program repeat the steps inside a loop. Or you may be able to extract the common code into a subroutine and then call it repeatedly rather than repeating the code many times. In these cases, your application doesn’t need to contain a long sequence of repetitive code that may be hard to debug and maintain.

Macros are generally most useful when you must write similar pieces of code that cannot be easily extracted into a routine that can be shared by different parts of the application. For example, suppose that you need to write event handlers for several dozen TextBox controls. You could record a macro while you write one of them. Then you could edit the macro to make it generate the others in a loop using different control names for each event handler. You could place the bulk of the event-handling code in a separate subroutine that each event handler would call. That would avoid the need for extensive duplicated code. (In fact, you could even use the AddHandler statement to make all the controls use the same event handler. Then you wouldn’t even need to write all of the separate event handlers.)

Macros are also useful for manipulating the IDE and performing IDE-related tasks. For example, you can write macros to show and hide your favorite toolbars, or to change whether the current file is opened read-only.

Customize

The Tools menu’s Customize command displays the dialog box shown in Figure 1-40. On the Toolbars tab, select the check boxes next to the toolbars that you want to be visible. Click New to create a new toolbar where you can add your favorite tools. You can leave the toolbar floating or drag it to the edge of the IDE and dock it. If you drag it to the top, it joins the other toolbars.

image from book
Figure 1-40: The Customize dialog box’s Toolbars tab lets you determine which toolbars are visible.

Click the Commands tab to see a list of categories as shown in Figure 1-41. Select a category on the left. Then click and drag a command from the list on the right. If you drop the command on a toolbar, the command is added to the toolbar. Hover over a menu to open the menu so that you can drop the command in it.

image from book
Figure 1-41: The Customize dialog box’s Commands tab lets you add commands to toolbars and menus.

To create a new menu, select the New Menu item in the list on the left. Then drag and drop the New Menu entry from the right list onto the IDE’s menu area.

To make a command that executes a macro you have created, select the Macros category in the list on the left. Find the macro you want to use in the list on the right, and drag it onto a toolbar or menu.

To remove a command from a toolbar or menu, right-click it and select Delete. Alternatively, you can click and drag the command somewhere that it cannot be placed. For example, you can drop it on the Customize dialog box or most places in the IDE other than on a menu or toolbar (code editors, the Properties window, the Toolbox). The mouse cursor changes to a box with an X beside it when the mouse is over one of these areas.

Tip 

Modifying the IDE’s standard menus and toolbars can cause confusion later. You may later discover that you need a command that you have removed from a menu, and it may take you quite a while to find it again. A better approach to modifying standard commands is to create a new custom toolbar or menu. Add the commands you want to use to the new toolbar and then hide the standard toolbar that you are replacing. Later you can restore the hidden standard toolbar if necessary.

If you right-click a command in a menu or toolbar while the Customize dialog box is open, Visual Studio displays the pop-up menu shown in Figure 1-42. Click the Name text box and enter a new name to change the text displayed in the menu or toolbar.

image from book
Figure 1-42: Right-click the menu and toolbar commands to change their appearances.

Use the Copy Button Image command to copy the button’s image to the clipboard. Use Paste Button Image to paste a copied image onto a button. Usually you will use these two commands to copy the image from an existing button to one you are adding. However, the Paste Button Image command will paste any graphical image from the clipboard. For example, you can open a bitmap using Microsoft Paint, press Ctrl+A to select the whole image, and press Ctrl+C to copy it to the clipboard. Then you can use the Paste Button Image command to paste the image into a button. Note that the buttons are 16 by 16 pixels. If the image you copy is larger, Visual Studio shrinks it to fit.

Select the Reset Button Image command to restore the button to its default image. For a command tied to a macro, this erases the image.

Select the Edit button image to display the simple button editor shown in Figure 1-43. When you click a pixel that is not the selected foreground color (black in Figure 1-43), the editor changes the pixel to the foreground color. When you hold the mouse down and drag it, the editor gives the pixels you cross that color, too. When you click a pixel that is already the foreground color, the editor erases the pixel and any others that you drag over.

image from book
Figure 1-43: You can use the Visual Studio simple button editor to change a command’s button.

When you click the Change Button Image command, a menu containing several dozen standard images pops out. Click one to assign that image to the button. A useful technique is to start with one of these images and then edit it to customize it for your command.

The pop-up menu’s Default Style command makes the command use a style that depends on whether it is in a menu or toolbar. In a menu, the command displays a button and text. In a toolbar, the command displays only a button. Ironically, a new button’s default style is not Default Style. When you create a new toolbar or menu command, the button initially displays only text. You need to use the Default Style command to make the button use this style.

Text Only (Always) makes the command display only text. Text Only (in Menus) makes a command in a toolbar display a button and a command in a menu display text.

Image and Text makes the command display both an icon and text whether it is in a toolbar or a menu.

Finally, the Begin a Group command makes the IDE insert a group separator before the button.

The Customize dialog box’s Rearrange Commands button displays a dialog that lets you rearrange the commands in an existing menu or toolbar, and change the appearance of those commands. It’s usually easier to just click and drag the commands on its menu or toolbar, however.

The Customize dialog box’s Keyboard button displays the dialog box shown in Figure 1-44. You can use this display to view and edit keyboard shortcuts.

image from book
Figure 1-44: The Options dialog’s Keyboard section lets you view and modify keyboard shortcuts.

Enter words in the Show commands containing text box to filter the commands. When you click on a command, the dialog box displays any keyboard shortcuts associated with it.

To make a new shortcut, click the Press shortcut key(s) text box and press the keys that you want to use as a shortcut. The Shortcut currently used by drop-down list displays any commands that already use the shortcut you entered. To make the assignment, click the Assign button.

Options

The Tools menu’s Options command displays the dialog box shown in Figure 1-45. This dialog box contains a huge number of pages of options that configure the Visual Studio IDE. The Customize dialog box’s Keyboard button described in the previous section uses the same dialog box with the Keyboard item selected in the list on the left.

image from book
Figure 1-45: The Options dialog box lets you specify IDE options.

The following list describes the Options dialog box’s most important categories:

  • Environment - Contains general IDE settings such as whether the IDE uses a Multiple Document Interface (MDI) or Single Document Interface (SDI), the number of items shown in the MRU lists, and how often the IDE saves AutoRecover information. The Fonts and Colors subsection lets you determine the colors used by the editors for different types of text. For example, comments are shown in green by default, but you can change this color.

  • Performance Tools - Contains settings for performance testing such as a flag indicating whether times should be displayed in clock ticks or milliseconds.

  • Projects and Solutions - Contains the default settings for Option Explicit, Option Strict, and Option Compare.

  • Source Control - Contains entries that deal with the source code control system (for example, Source Safe).

  • Text Editor - Contains entries that specify the text editor’s features. For example, you can use these pages to determine whether delimiters are highlighted, the editor provides drag-and-drop editing, scroll bars are visible, long lines are automatically wrapped, line numbers are displayed, and the editor provides smart indentation. The Basic image from book VB Specific subsection lets you specify options such as whether the editor uses outlining, whether it displays procedure separators, and suggested corrections for errors.

  • Database Tools - Contains database parameters such as default lengths for fields of various types.

  • Debugging - Contains debugging settings such as whether the debugger displays messages as modules are loaded and unloaded, whether it should make you confirm when deleting all breakpoints, and whether it should allow Edit-and-Continue.

  • Device Tools - Contains options for development on devices such as Smartphones, Pocket PCs, or Windows CE.

  • HTML Designer - Contains options for configuring HTML Designer. These options determine such settings as whether the designer starts in source or design view, and whether it displays Smart Tags for controls in design view.

  • Microsoft Office Keyboard Settings - Contains settings that specify how the keyboard should work when you use Excel or Word files within Visual Studio.

  • Test Tools - Contains settings that determine how testing tools behave.

  • Windows Form Designer - Contains settings that control the Form Designer. For example, this section lets you determine whether the designer uses a snap-to grid or snap lines.

Test

The Test menu contains commands that control the Visual Studio testing tools. These tools let you perform such actions as coverage testing (to see if every line of code is executed), regression testing (to see if changes to the code broke anything), and load testing (to see how the application performs with a lot of simulated users running at the same time). Figure 1-46 shows the Test menu.

image from book
Figure 1-46: The Test menu displays commands that control Visual Studio’s testing tools.

The following list briefly describes the Test menu’s commands:

  • New Test - Displays the dialog box shown in Figure 1-47 to let you create various kinds of tests for the application.

    image from book
    Figure 1-47: The Add New Test dialog box lets you define new tests for the application.

  • Load Metadata File - Lets you load a test metadata file. These files contain XML data that describes test lists, each of which can contain tests. This command lets you load test lists into different projects.

  • Create New Test List - Lets you make a new test list. Test lists let you group related tests so that you can execute them together. For example, you might have test lists for user interface testing, print tests, database tests, and so forth.

  • Start Selected Test Project with Debugger - Starts executing the test project that is currently active in Solution Explorer with the debugger.

  • Start Selected Test Project without Debugger - Starts executing the test project that is currently active in Solution Explorer without the debugger.

  • Administer Test Controllers - Lets you manage test controllers. Test controllers manage test agents and gather test results. Test agents run the tests.

  • Select Active Test Run Configuration - Lets you select the active test run configuration. Test run configurations determine testing parameters (such as what files are associated with the tests and whether unit tests produce coverage information).

  • Edit Test Run Configurations - Lets you edit test run configurations.

  • Windows - Displays test-related windows including Test View, Test Manager, Test Results, Code Coverage Results, and Test Runs.

Window

The Window menu contains commands that control the Visual Studio windows. Which commands are enabled depends on the type of window that has the focus. Figure 1-48 shows this menu when the Toolbox has the focus.

image from book
Figure 1-48: The Window menu displays commands that control the Visual Studio windows.

The following list briefly describes these commands:

  • New Window - Creates a new window displaying the contents of the current code window.

  • Split - Splits a code window into two panes that can display different parts of the code at the same time. This command changes to Remove Split when you use it.

  • Floating, Dockable, Tabbed Document - Secondary windows such as the Toolbox, Solution Explorer, and Properties windows can be displayed as dockable, as floating, or as tabbed documents. A dockable window can be attached to the edges of the IDE or docked with other secondary windows. A floating window stays in its own independent window even if you drag it to a position where it would normally dock. A tabbed document window is displayed in the main editing area in the center of the IDE with the forms, classes, and other project files.

  • Auto Hide - Puts a secondary window in Auto Hide mode. The window disappears, and its title is displayed at the IDE’s nearest edge. When you click on the title or hover over it, the window reappears so that you can use it. If you click on another window, this window hides itself again automatically.

  • Hide - Removes the window.

  • Auto Hide All - Makes all secondary windows enter Auto Hide mode.

  • New Horizontal Tab Group - Splits the main document window horizontally so that you can view two different documents at the same time.

  • New Vertical Tab Group - Splits the main document window vertically so that you can view two different documents at the same time.

  • Close All Documents - Closes all documents.

  • Reset Window Layout - Resets the window layout to a default configuration.

  • Form1.vb - The bottom part of the Window menu lists the open documents. In Figure 1-48, it lists Form1.vb in the code editor and Form1.vb [Design] in the Form Designer (Design mode). The Form Designer entry is checked because it is the currently active document.

  • Windows - If you have too many open documents to display in the Window menu, select this command to see a list of windows in a dialog. This dialog box lets you switch to another document, close one or more documents, or save documents. By pressing Ctrl+Click or Shift+Click you can select more than one document and quickly close them.

Community

The Community menu shown in Figure 1-49 provides links to various pages on the go.Microsoft.com web site. These commands only work if you are connected to the Internet.

image from book
Figure 1-49: The Community menu provides Internet links for Visual Studio developers.

Help

The Help menu shown in Figure 1-50 displays the usual assortment of help commands. You should be familiar with most of these from previous experience.

image from book
Figure 1-50: The Help menu contains commands that give you help.

One new item in the Help menu is the How Do I command. This command opens the help system and displays a page full of links to common programming topics. These topics lead to a hierarchical series of categorized tutorials on various programming topics. For example, the Visual Basic image from book Language image from book Basics image from book Data Types image from book Data Type Summary topic describes the Visual Basic data types, their storage requirements, and their ranges of allowed values.




Visual Basic 2005 with  .NET 3.0 Programmer's Reference
Visual Basic 2005 with .NET 3.0 Programmer's Reference
ISBN: 470137053
EAN: N/A
Year: 2007
Pages: 417

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net