+612 9045 4394
 
CHECKOUT
User Interfaces in VB .Net : Windows Forms and Custom Controls - Matthew MacDonald

User Interfaces in VB .Net

Windows Forms and Custom Controls

Paperback Published: 9th July 2002
ISBN: 9781590590447
Number Of Pages: 624

Share This Book:

Paperback

RRP $93.77
$76.80
18%
OFF
Ships in 7 to 10 business days

Earn 154 Qantas Points
on this Book

This book represents the start of the second wave of .NET books: closely focused works that give you the insight of experienced developers about a single aspect of .NET programming. In .NET User Interfaces with VB .NET, you'll take a close look at all the ingredients you can use to design state-of-the-art application interfaces. You'll also delve into entirely new topics like custom control design and GDI+, the next-generation painting framework for Windows. You won't just learn about anchoring and docking, you'll work with complete examples that show document-view architectures, custom control layout engines, dockable windows, and hit testing with owner-drawn controls. You'll also learn how to design irregularly shaped forms, unshackle data binding, and build integrated help systems. You'll find that this book fills three roles. It provides the following: - An overview of how to design elegant user interfaces the average user can understand. This is addressed directly in the first chapter, and indirectly in tips and asides throughout the book. - A comprehensive examination of the user interface controls and classes in .NET. Although this book is not a reference, it contains an exhaustive tour of almost every user interface element you'll want to use, including providers, components, and custom controls. - A tutorial with best practices and design tips for coding user interfaces and integrating help. This represents overall focus, and the single most important aspect of the book. As a developer, you need to know more than how to add a control to a window. You also need to know how to create an entire user interface framework that's scalable, flexible, and reusable.

Prefacep. xvii
About the Authorp. xix
About the Technical Reviewerp. xxi
Acknowledgmentsp. xxiii
Introductionp. xxv
About This Bookp. xxv
Chapter Overviewp. xxviii
Creating Usable Interfacesp. 1
Why Worry About the Interface?p. 2
A Brief History of User Interfacesp. 3
The Command-Line Erap. 3
The Question-Answer Modelp. 5
The Menu-Driven Modelp. 7
The GUI Erap. 8
Creativity vs. Conventionp. 9
Consistency in .NETp. 10
The "Act-Like-Microsoft" Principlep. 11
Administrative Utilitiesp. 11
Know Your Application Typep. 13
Know Your Userp. 13
Handling Complexityp. 14
Segmenting Informationp. 15
Inductive User Interfacep. 16
Helpful Restrictionsp. 16
Restricting the User's Ability to Make a Mistakep. 16
Restricting the User's Choicesp. 17
Restricting the User's Imaginationp. 18
Programming User Interface for the Webp. 19
The Last Wordp. 19
Designing with Classes and Tiersp. 21
Classes and Objectsp. 22
The Roles of Classesp. 22
Classes and Typesp. 23
More About Objectsp. 26
User Interface Classes in .NETp. 26
Controls Are Classesp. 27
Controls Contain Other Controlsp. 28
Controls Derive from Other Controlsp. 30
Inheritance and the Form Classp. 32
The Controls Collectionp. 34
Generating Code with Visual Studio .NETp. 35
Interacting with a Controlp. 37
The View-Mediator Patternp. 37
Smart Controlsp. 39
Smart Formsp. 40
Encapsulationp. 41
Use Enumerations and Resource Classesp. 42
Use Collectionsp. 42
Restrain from Sharing Control Referencesp. 42
Define a Data Transfer Planp. 42
Use a Central Switchboardp. 43
Create Data-Driven User Interfacesp. 43
Developing in Tiersp. 44
Problems with Three-Tier Designp. 45
Three-Tier Design Consistencyp. 47
Fixing Three-Tier Designp. 48
The DataSet to the Rescuep. 50
Validation and Business Objectsp. 51
Other Types of Applicationp. 51
The Last Wordp. 52
Control Class Basicsp. 55
The Windows Forms Packagep. 55
The .NET Solutionp. 56
The Control Classp. 58
Position and Sizep. 62
Colorp. 64
Fonts and Textp. 67
Access Keysp. 68
Control Relationsp. 69
Focus and the Tab Sequencep. 70
Responding to the Mouse and Keyboardp. 73
A Mouse/Keyboard Examplep. 76
Mouse Cursorsp. 76
Graphics and Paintingp. 78
Low-Level Membersp. 79
The Last Wordp. 80
Classic Controlsp. 81
Types of Controlsp. 81
Invisible Controlsp. 81
Provider Controlsp. 83
ActiveX Controlsp. 84
Should You Import ActiveX Controls?p. 86
The Classic Control Galleryp. 88
Labelsp. 88
LinkLabelp. 89
Buttonp. 91
TextBoxp. 92
CheckBox and RadioButtonp. 94
PictureBoxp. 94
List Controlsp. 95
Other Domain Controlsp. 99
Organizational Controlsp. 102
The Date Controlsp. 102
The DateTimePickerp. 103
MonthCalendarp. 106
Menusp. 108
The Menu Classp. 110
The MainMenu and ContextMenu Classesp. 111
The MenuItem Classp. 112
The Visual Studio .NET Menu Designerp. 114
Attaching a Menup. 116
Menu Eventsp. 117
Copying and Cloning a Menup. 118
Merging a Menup. 118
Owner-Drawn Menusp. 119
An Owner-Drawn Menu Controlp. 122
Drag-and-Dropp. 126
"Fake" Drag-and-Dropp. 126
Authentic Drag-and-Dropp. 128
Validationp. 131
A Validation Examplep. 133
Validating with the ErrorProviderp. 134
Validating with Regular Expressionsp. 136
The Last Wordp. 138
Formsp. 139
The Form Classp. 139
Form Size and Positionp. 144
Scrollable Formsp. 148
Showing a Formp. 149
Custom Dialog Windowsp. 150
IgnoreForm Interactionp. 153
Form Ownershipp. 156
Windows XP Stylesp. 158
Prebuilt Dialogsp. 160
Resizable Formsp. 165
The Problem of Sizep. 165
A Traditional Solutionp. 166
Minimum and Maximum Sizep. 169
Anchoringp. 170
Dockingp. 174
Splitting Windowsp. 176
Docking with Panelsp. 177
Other Split Windowsp. 179
Irregularly Shaped Formsp. 183
Shaped Form Contentp. 185
Moving Shaped Formsp. 187
Forms with Holesp. 189
Visual Inheritancep. 190
Making an Ancestor Control Availablep. 192
Adding an Ancestor Propertyp. 192
Overriding an Event Handlerp. 193
The Last Wordp. 195
Modern Controlsp. 197
The ImageListp. 197
Dealing with the ImageList in Codep. 199
ListView and TreeViewp. 201
Basic ListViewp. 202
Advanced ListView Tricksp. 208
Label Editingp. 212
Adding Information to a ListViewp. 213
Basic TreeViewp. 213
TreeView Structurep. 214
TreeView Navigationp. 216
Manipulating Nodesp. 219
Selecting Nodesp. 222
Advanced TreeView Tricksp. 224
Node Picturesp. 225
Expanding and Collapsing Levelsp. 226
TreeView Drag-and-Dropp. 227
Taming the TreeViewp. 231
A Project Treep. 231
A Data-Aware TreeViewp. 233
Unusual Treesp. 235
Design-Time Support for the Custom TreeViewp. 236
The ToolBarp. 237
Synchronizing the ToolBarp. 241
The StatusBarp. 245
Basic StatusBarp. 246
Synchronizing the StatusBar to a Menup. 248
The TabControlp. 250
The NotifyIconp. 252
The Last Wordp. 253
Custom Controlsp. 255
Types of Custom Controlsp. 256
User Controlsp. 256
Creating User Controlsp. 257
The Progress User Controlp. 259
The Bitmap Thumbnail Viewerp. 264
Testing the BitmapViewerp. 270
BitmapViewer Eventsp. 270
BitmapViewer Enhancements and Threadingp. 272
Inherited Controlsp. 275
Inherited Controls or User Controls?p. 276
The DirectoryTree Controlp. 276
Testing the DirectoryTreep. 279
A Masked TextBox Controlp. 280
Custom Extender Providersp. 283
The Menu Text Providerp. 284
The Help Icon Providerp. 288
The Last Wordp. 291
Design-Time Support for Custom Controlsp. 293
Control Projectsp. 294
The Class Library Projectp. 294
Referencing a Custom Controlp. 296
The GACp. 298
Control Designer Basicsp. 300
Attributesp. 300
Basic Serializationp. 305
The Toolbox Bitmapp. 306
Resource Filesp. 308
Testing Custom Controlsp. 312
Debugging Design-Time Supportp. 313
Testing for Design Modep. 314
The PropertyGrid Controlp. 315
Custom Designersp. 316
Filtering Properties and Eventsp. 318
Designer Verbsp. 319
Control Designer Notificationsp. 325
Data Types and UITypeEditorsp. 326
Using Prebuilt UITypeEditorsp. 328
Custom UITypeEditorsp. 330
Licensing Custom Controlsp. 332
Simple LIC File Licensingp. 332
Custom LIC File Licensingp. 334
Advanced License Providersp. 334
The Last Wordp. 337
Data Controlsp. 339
Introducing Data Bindingp. 339
Basic Data Bindingp. 340
Simple List Bindingp. 342
Binding Lists to Complex Objectsp. 343
Single-Value Bindingp. 346
ADO.NET Data Bindingp. 349
Multiple Control Bindingp. 353
Updating with Data Bindingp. 354
Formatting Data Before Bindingp. 356
Advanced Conversionsp. 359
Row Validation and Changesp. 362
Data Binding Exposedp. 363
Navigation with Data Bindingp. 364
Reacting to Record Navigationp. 366
Creating Master-Detail Formsp. 367
Creating a New Binding Contextp. 369
The DataGrid Controlp. 370
DataGrid Relationsp. 371
DataGrid Column Mappingp. 372
Creating Custom DataGrid Column Stylesp. 373
Encapsulation with Data Controlsp. 377
Validating Bound Datap. 378
Data-Aware Controlsp. 380
A Decoupled TreeView with Just-in-Time Nodesp. 382
Can There Be a Data-Bound ListView Control?p. 387
The Last Wordp. 387
MDI Interfaces and Workspacesp. 389
The Story of MDIp. 389
Types of MDI Applicationsp. 390
MDI Essentialsp. 390
Finding Your Relativesp. 392
Synchronizing MDI Childrenp. 393
MDI Layoutp. 395
Merging Menusp. 396
Managing Interface Statep. 399
Document-View Architecturep. 401
A Document-View Ordering Programp. 402
Floating Windows and Dockingp. 415
Floating Toolbarsp. 415
Dockable Windowsp. 418
The Last Wordp. 424
Dynamic User Interfacep. 425
The Case for Dynamic User Interfacep. 425
Creating Controls at Runtimep. 426
A System Tray Applicationp. 428
Using Controls in a Drawing Programp. 432
Dynamic Contentp. 438
Localizationp. 439
A Dynamic Menu Examplep. 442
Data-Driven Programmingp. 446
A Data-Driven Pricing Applicationp. 446
Control Layout Enginesp. 448
The SingleLineFlow Layout Managerp. 449
Control Layout Engines As Extender Providersp. 452
The Last Wordp. 452
GDI+ Basicsp. 455
Paint Sessions with GDI+p. 456
Accessing the Graphics Objectp. 456
Painting and Refreshingp. 457
Optimizing GDI+ Paintingp. 460
Painting and Resizingp. 460
Painting Portions of a Windowp. 462
Rendering Mode and Antialiasingp. 465
Double Bufferingp. 467
Painting and Debuggingp. 470
The Graphics Classp. 471
Coordinate Systems and Transformationsp. 476
Pensp. 479
Brushesp. 482
Hit Testingp. 485
Hit Testing Nonrectangular Shapesp. 487
The ControlPaint Classp. 488
The Last Wordp. 490
GDI+ Controlsp. 491
Simple GDI+ Controlsp. 491
A Gradient Labelp. 492
Improving the GradientLabel's Design-Time Supportp. 495
A Marquee Labelp. 498
Creating Button Controlsp. 501
A Hot Tracking Buttonp. 502
Reconsidering the Vector Drawing Programp. 507
Solving the Bounding Problemp. 508
A Simple Graphing Controlp. 513
The Last Wordp. 517
Help and Application-Embedded Supportp. 519
The Case for Helpp. 519
Types of Helpp. 520
WinHelpp. 520
WinHelp 95p. 521
HTML Helpp. 522
MS Help 2p. 524
Some Help Authoring Toolsp. 525
Classic Bad Helpp. 526
Basic Help with the HelpProviderp. 527
Control-Based and Form-Based Helpp. 531
Invoking Help Programmaticallyp. 532
Help Without the HelpProviderp. 533
Using Database-Based Helpp. 534
Using Task-Based Helpp. 535
Creating Your Own Helpp. 537
Application-Embedded Supportp. 539
Affordancesp. 540
Agentsp. 541
The Last Wordp. 547
Indexp. 549
Table of Contents provided by Syndetics. All Rights Reserved.

ISBN: 9781590590447
ISBN-10: 1590590449
Series: Net Developer Series
Audience: General
Format: Paperback
Language: English
Number Of Pages: 624
Published: 9th July 2002
Publisher: Apress
Country of Publication: US
Dimensions (cm): 23.5 x 19.1  x 3.38
Weight (kg): 1.06

Earn 154 Qantas Points
on this Book