SPECIAL OFFERS
Keep up with new releases and promotions.Sign up to hear from us.
This eBook includes the following formats, accessible from your账户page after purchase:
EPUBThe open industry format known for its reflowable content and usability on supported mobile devices.
PDFThe popular standard, used most often with the freeAdobe® Reader®software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Also available inother formats.
Register your productto gain access to bonus material or receive a coupon.
In just 24 sessions of one hour or less, you’ll learn how to build complete, reliable, and modern Windows applications with Microsoft® Visual Basic® 2015. Using a straightforward, step-by-step approach, each lesson builds on what you’ve already learned, giving you a strong foundation for success with every aspect of VB 2015 development.
Notes present interesting pieces of information.
Tips offer advice or teach an easier way to do something.
Cautions advise you about potential problems and help you steer clear of disaster.
Learn How To
Download all examples and source code presented in this book from informit.com/title/9780672337451 as they become available.
Who Should Read This Book
Those who have little or no programming experience or who might be picking up Visual Basic as a second language.
Bug Alert
Description:Changing the startup form's name in a VB WinForms app does not update the "Startup form" #4517
Explanation:In the latest Visual Basic update on GitHub, Microsoft accidentally introduced a significant bug that you should be aware of. In the Visual Basic project properties dialog on one of the tabs (Application), is a drop down box for selecting the "startup object". This can be either a Main method or a System.Windows.Forms instance (or System.Windows.Window for WPF). When you do a rename on a form (say from the code editor in source or from the solution explorer) currently set as the startup form the rename doesn't cascade to the startup object project property cause the project to enter an invalid state where the user must now manually reset this project property from the now nonexistent Form to the new name. This is a huge annoyance.
The fix for the bug (until Microsoft addresses) can be found here:
http://www.jamesfoxall.com/
Introduction . . . . . . . . . . . . . xvii
Part I: The Visual Basic 2015 Environment
Hour 1: Jumping in with Both Feet: A Visual Basic 2015 Programming Tour . 1
Starting Visual Basic 2015 . . . . . . . . . . 2
创建a New Project . . . . . . . . . . 3
Understanding the Visual Studio 2015 Environment . . . . . 6
Changing the Characteristics of Objects . . . . . . . 7
Adding Controls to a Form. . . . . . . . . 13
Designing an Interface . . . . . . . . . . 15
Writing the Code Behind an Interface. . . . . . . 20
Running a Project . . . . . . . . . . . 24
总结 . . . . . . . . . .. . 27
常见问题28
Workshop. . . . . . . . . . . . 28
Exercises. . . . . . . . . . . . . 29
Hour 2: Navigating Visual Basic 2015 . . . . . . . . 31
Using the Visual Basic 2015 Start Page . . . . . . . 31
Navigating and Customizing the Visual Basic Environment . . . 34
Working with Toolbars . . . . . . . . . . 40
Adding Controls to a Form Using the Toolbox . . . . . . 41
Setting Object Properties Using the Properties Window . . . . 43
Managing Projects . . . . . . . . . . . 50
A Quick-and-Dirty Programming Primer. . . . . . . 57
Getting Help. . . . . . . . . . . . 59
总结 . . . . . . . . . .. . 60
常见问题60
Workshop. . . . . . . . . . . . 61
Exercises. . . . . . . . . . . . . 61
Hour 3: Understanding Objects and Collections . . . . . . 63
Understanding Objects . . . . . . . . . . 64
Understanding Properties. . . . . . . . . . 64
Understanding Methods. . . . . . . . . . 72
Building a Simple Object Example Project . . . . . . . 73
Understanding Collections . . . . . . . . . 79
Using the Object Browser . . . . . . . . . . 82
总结 . . . . . . . . . .. . 84
常见问题84
Workshop. . . . . . . . . . . . 85
Exercises. . . . . . . . . . . . . 85
Hour 4: Understanding Events . . . . . . . . . . 87
Understanding Event-Driven Programming . . . . . . 87
Building an Event Example Project . . . . . . . . 97
Keeping Event Names Current . . . . . . . . 103
总结 . . . . . . . . . .. . 103
常见问题104
Workshop. . . . . . . . . . . . 104
Exercises. . . . . . . . . . . . 105
Part II: Building a User Interface
Hour 5: Building Forms: The Basics . . . . . . . . 107
Changing a Form’s Name . . . . . . . . . 108
Changing a Form’s Appearance . . . . . . . . 109
Showing and Hiding Forms . . . . . . . . . 122
总结 . . . . . . . . . .. . 128
常见问题128
Workshop. . . . . . . . . . . . 129
Exercises. . . . . . . . . . . . 130
Hour 6: Building Forms: Advanced Techniques . . . . . . 131
Working with Controls . . . . . . . . . . 131
创建Topmost Nonmodal Windows. . . . . . . 151
创建Transparent Forms . . . . . . . . . 151
创建Scrollable Forms . . . . . . . . . 152
创建MDI Forms . . . . . . . . . . 154
Setting the Startup Form . . . . . . . . . 158
总结 . . . . . . . . . .. . 159
常见问题160
Workshop. . . . . . . . . . . . 160
Exercises. . . . . . . . . . . . 161
Hour 7: Working with Traditional Controls . . . . . . . 163
Displaying Static Text with the Label Control. . . . . . 163
Allowing Users to Enter Text Using a Text Box. . . . . . 164
创建Buttons. . . . . . . . . . . 172
创建Containers and Groups of Option Buttons . . . . . 176
Displaying a List with the List Box . . . . . . . . 180
创建Drop-Down Lists Using the Combo Box . . . . . 188
总结 . . . . . . . . . .. . 190
常见问题191
Workshop. . . . . . . . . . . . 191
Exercises. . . . . . . . . . . . 192
Hour 8: Using Advanced Controls. . . . . . . . . 193
创建Timers . . . . . . . . . . . 193
创建Tabbed Dialog Boxes . . . . . . . . 197
Storing Pictures in an Image List Control . . . . . . 200
Building Enhanced Lists Using the List View Control . . . . 202
创建Hierarchical Lists Using the Tree View Control . . . . 207
总结 . . . . . . . . . .. . 211
常见问题212
Workshop. . . . . . . . . . . . 212
Exercises. . . . . . . . . . . . 213
Hour 9: Adding Menus and Toolbars to Forms . . . . . . 215
Building Menus . . . . . . . . . . . 215
Using the Toolbar Control . . . . . . . . . 229
创建a Status Bar . . . . . . . . . . 235
总结 . . . . . . . . . .. . 237
常见问题237
Workshop. . . . . . . . . . . . 238
Exercises. . . . . . . . . . . . 238
Part III: Making Things Happen—Programming
Hour 10: Creating and Calling Code Procedures . . . . . . 239
创建Visual Basic Code Modules . . . . . . . 239
Writing Code Procedures . . . . . . . . . 242
Calling Code Procedures . . . . . . . . . 248
Exiting Procedures. . . . . . . . . . . 254
Avoiding Infinite Recursion . . . . . . . . . 255
总结 . . . . . . . . . .. . 256
常见问题257
Workshop. . . . . . . . . . . . 257
Exercises. . . . . . . . . . . . 258
小时11:使用常量、数据类型、变量、一个nd Arrays . . . . 259
Understanding Data Types. . . . . . . . . 260
Defining and Using Constants . . . . . . . . 263
Declaring and Referencing Variables . . . . . . . 266
Working with Arrays . . . . . . . . . . 273
Determining Scope . . . . . . . . . . 276
Declaring Variables of Static Scope . . . . . . . . 281
Using Variables in Your Picture Viewer Project. . . . . . 282
Renaming Variables . . . . . . . . . . 286
总结 . . . . . . . . . .. . 287
常见问题288
Workshop. . . . . . . . . . . . 288
Exercises. . . . . . . . . . . . 289
Hour 12: Performing Arithmetic, String Manipulation, and Date/Time Adjustments . .. 291
Performing Basic Arithmetic Operations with Visual Basic . . . 291
Comparing Equalities . . . . . . . . . . 295
Understanding Boolean Logic. . . . . . . . . 296
Manipulating Strings. . . . . . . . . . 298
Working with Dates and Times . . . . . . . . 304
总结 . . . . . . . . . .. . 309
常见问题310
Workshop. . . . . . . . . . . . 310
Exercises. . . . . . . . . . . . 311
Hour 13: Making Decisions in Visual Basic Code . . . . . . 313
Making Decisions Using If...Then. . . . . . . 313
Branching Within a Procedure Using GoTo . . . . . . 324
总结 . . . . . . . . . .. . 326
常见问题327
Workshop. . . . . . . . . . . . 327
Exercises. . . . . . . . . . . . 328
Hour 14: Looping for Efficiency . . . . . . . . . 329
Looping a Specific Number of Times Using For...Next . . . . 329
Using Do...Loop to Loop an Indeterminate Number of Times . . . 336
总结 . . . . . . . . . .. . 341
常见问题341
Workshop. . . . . . . . . . . . 342
Exercises. . . . . . . . . . . . 342
Hour 15: Debugging Your Code . . . . . . . . . 343
Adding Comments to Your Code . . . . . . . . 344
Identifying the Two Basic Types of Errors . . . . . . 346
Using Visual Basic’s Debugging Tools . . . . . . . 349
Breaking Only When a Condition Is Met. . . . . . . 358
Breaking Only When a Breakpoint Is Hit a Certain Number of Times . 359
Sending Messages to the Output Window Using Tracepoints. . . 360
Writing an Error Handler Using Try...Catch...Finally . . . 360
总结 . . . . . . . . . .. . 368
常见问题368
Workshop. . . . . . . . . . . . 368
Exercises. . . . . . . . . . . . 369
Hour 16: Designing Objects Using Classes . . . . . . . 371
Understanding Classes. . . . . . . . . . 372
Instantiating Objects from Classes . . . . . . . . 381
总结 . . . . . . . . . .. . 388
常见问题388
Workshop. . . . . . . . . . . . 388
Exercises. . . . . . . . . . . . 389
Hour 17: Interacting with Users . . . . . . . . . 391
Displaying Messages Using the MessageBox.Show() Function. . . 391
创建Custom Dialog Boxes. . . . . . . . 398
Using InputBox() to Get Information from a User . . . . . 401
Interacting with the Keyboard . . . . . . . . 404
Using the Common Mouse Events . . . . . . . . 406
总结 . . . . . . . . . .. . 409
常见问题410
Workshop. . . . . . . . . . . . 410
Exercises. . . . . . . . . . . . 411
Hour 18: Working with Graphics . . . . . . . . . 413
Understanding the Graphics Object . . . . . . . 413
Working with Pens . . . . . . . . . . 416
Using System Colors . . . . . . . . . . 417
Working with Rectangles . . . . . . . . . 421
Drawing Shapes . . . . . . . . . . . 422
Drawing Text . . . . . . . . . . . 423
Persisting Graphics on a Form . . . . . . . . 425
Building a Graphics Project Example . . . . . . . 425
总结 . . . . . . . . . .. . 432
常见问题432
Workshop. . . . . . . . . . . . 432
Exercises. . . . . . . . . . . . 433
Part IV: Working with Data
Hour 19: Performing File Operations . . . . . . . . 435
Using the OpenFileDialog and SaveFileDialog Controls . . . 435
Manipulating Files with the File Object. . . . . . . 443
Manipulating Directories with the Directory Object . . . . 452
总结 . . . . . . . . . .. . 453
常见问题454
Workshop. . . . . . . . . . . . 454
Exercises. . . . . . . . . . . . 455
Hour 20: Working with the Registry and Text Files . . . . . . 457
Working with the Registry . . . . . . . . . 457
Reading and Writing Text Files . . . . . . . . 470
总结 . . . . . . . . . .. . 480
常见问题481
Workshop. . . . . . . . . . . . 481
Exercises. . . . . . . . . . . . 482
Hour 21: Working with a Database . . . . . . . . 483
Introducing ADO.NET . . . . . . . . . . 484
Manipulating Data . . . . . . . . . . 491
总结 . . . . . . . . . .. . 502
常见问题502
Workshop. . . . . . . . . . . . 503
Exercises. . . . . . . . . . . . 503
Hour 22: Printing . . . . . . . . . . . . 505
Preparing the Picture Viewer Project . . . . . . . 506
Printing and Previewing a Document . . . . . . . 509
Changing Printer and Page Settings . . . . . . . 519
Scaling Images to Fit a Page . . . . . . . . . 522
总结 . . . . . . . . . .. . 527
常见问题528
Workshop. . . . . . . . . . . . 528
Exercises. . . . . . . . . . . . 528
Hour 23: Sending Emails. . . . . . . . . . 529
Understanding the Classes Used to
Send Emails . . . . . . . . . . . . 530
Sending Email from Your Picture Viewer Application . . . . 530
总结 . . . . . . . . . .. . 543
常见问题544
Workshop. . . . . . . . . . . . 544
Exercises. . . . . . . . . . . . 544
Part V: Deploying Solutions and Beyond
Hour 24: Deploying Applications . . . . . . . . . 545
Understanding ClickOnce Technology. . . . . . . 545
Using the Publish Wizard to Create a ClickOnce Application . . . 547
Testing Your Picture Viewer ClickOnce Install Program . . . . 552
Uninstalling an Application You’ve Distributed . . . . . 553
Setting Advanced Options for Creating ClickOnce Programs. . . 556
总结 . . . . . . . . . .. . 557
常见问题557
Workshop. . . . . . . . . . . . 557
Exercises. . . . . . . . . . . . 558
Appendix A: The 10,000-Foot View . . . . . . . . 559
TOC, 9780672337451, 7/19/2015