| |
| |
Foreword | |
| |
| |
About the Author | |
| |
| |
About the Technical Reviewer | |
| |
| |
Acknowledgments | |
| |
| |
Introduction | |
| |
| |
| |
Windows Forms Fundamentals | |
| |
| |
| |
User Interface Architecture | |
| |
| |
Classes and Objects | |
| |
| |
User Interface Classes in .NET | |
| |
| |
Interacting with a Control | |
| |
| |
Visual Studio | |
| |
| |
Designing Windows Forms Applications | |
| |
| |
The Last Word | |
| |
| |
| |
Control Basics | |
| |
| |
The Windows Forms Package | |
| |
| |
The Control Class | |
| |
| |
Position and Size | |
| |
| |
Color | |
| |
| |
Fonts and Text | |
| |
| |
Focus and the Tab Sequence | |
| |
| |
Responding to the Mouse and Keyboard | |
| |
| |
Low-Level Members | |
| |
| |
The Last Word | |
| |
| |
| |
Forms | |
| |
| |
The Form Class | |
| |
| |
Prebuilt Dialogs | |
| |
| |
Resizable Forms | |
| |
| |
Splitting Windows | |
| |
| |
The Last Word | |
| |
| |
| |
The Classic Controls | |
| |
| |
The Classic Control Gallery | |
| |
| |
The Date Controls | |
| |
| |
Container Controls | |
| |
| |
AutoComplete | |
| |
| |
Drag-and-Drop | |
| |
| |
Extender Providers | |
| |
| |
The Notifylcon | |
| |
| |
ActiveX Controls | |
| |
| |
The Last Word | |
| |
| |
| |
Images and Resources | |
| |
| |
The Image Class | |
| |
| |
Resources | |
| |
| |
Localization | |
| |
| |
The Last Word | |
| |
| |
| |
Lists and Trees | |
| |
| |
ListView Basics | |
| |
| |
More Advanced ListViews | |
| |
| |
TreeView Basics | |
| |
| |
More Advanced TreeViews | |
| |
| |
The Last Word | |
| |
| |
| |
Drawing with GDI+ | |
| |
| |
Understanding GDI+ | |
| |
| |
Paint Sessions with GDI+ | |
| |
| |
The Graphics Class | |
| |
| |
More-Advanced GDI+ | |
| |
| |
Optimizing GDI+ Painting | |
| |
| |
Painting Windows Controls | |
| |
| |
The Last Word | |
| |
| |
| |
Data Binding | |
| |
| |
Introducing Data Binding | |
| |
| |
Basic Data Binding | |
| |
| |
Common Data-Binding Scenarios | |
| |
| |
Data Binding Exposed | |
| |
| |
Binding to Custom Objects | |
| |
| |
Automatic Data Binding | |
| |
| |
Data-Aware Controls | |
| |
| |
The Last Word | |
| |
| |
| |
Custom Controls | |
| |
| |
| |
Custom Control Basics | |
| |
| |
Understanding Custom Controls | |
| |
| |
Control Projects | |
| |
| |
The Client Project | |
| |
| |
The GAC | |
| |
| |
The Last Word | |
| |
| |
| |
User Controls | |
| |
| |
Understanding User Controls | |
| |
| |
The Progress User Control | |
| |
| |
The Bitmap Thumbnail Viewer | |
| |
| |
User Controls and Dynamic Interfaces | |
| |
| |
The Last Word | |
| |
| |
| |
Derived Controls | |
| |
| |
Understanding Derived Controls | |
| |
| |
The ProjectTree Control | |
| |
| |
The DirectoryTree Control | |
| |
| |
Deriving Forms | |
| |
| |
The Last Word | |
| |
| |
| |
Owner-Drawn Controls | |
| |
| |
Understanding Owner-Drawn Controls | |
| |
| |
Owner-Drawn Custom Controls | |
| |
| |
The Last Word | |
| |
| |
| |
Design-Time Support for Custom Controls | |
| |
| |
Design-Time Basics | |
| |
| |
Code Serialization | |
| |
| |
Type Conversion | |
| |
| |
Type Editors | |
| |
| |
The Last Word | |
| |
| |
| |
Modern Controls | |
| |
| |
| |
Tool, Menu, and Status Strips | |
| |
| |
ToolStrip Basics | |
| |
| |
The StatusStrip and MenuStrip | |
| |
| |
ToolStrip Customization | |
| |
| |
Customizing the ToolStrip Rendering | |
| |
| |
The Last Word | |
| |
| |
| |
The DataGridView | |
| |
| |
The DataGrid Legacy | |
| |
| |
Introducing the DataGridView | |
| |
| |
Bare-Bones Data-Binding | |
| |
| |
Formatting the DataGridView | |
| |
| |
Editing and Validation with the DataGridView | |
| |
| |
DataGridView Customization | |
| |
| |
The Last Word | |
| |
| |
| |
Sound and Video | |
| |
| |
The SoundPlayer | |
| |
| |
Advanced Media with DirectShow | |
| |
| |
The Last Word | |
| |
| |
| |
The WebBrowser | |
| |
| |
WebBrowser Basics | |
| |
| |
Blending Web and Windows Interfaces | |
| |
| |
The Last Word | |
| |
| |
| |
Windows Forms Techniques | |
| |
| |
| |
Validation and Masked Editing | |
| |
| |
Validating at the Right Time | |
| |
| |
Validation Events | |
| |
| |
The ErrorProvider | |
| |
| |
Regular Expressions | |
| |
| |
Custom Validation Components | |
| |
| |
Masked Edit Controls | |
| |
| |
The Last Word | |
| |
| |
| |
Multiple and Single Document Interfaces | |
| |
| |
The Evolution of Document Interface Models | |
| |
| |
MDI Essentials | |
| |
| |
Document-View Architecture | |
| |
| |
Multiple-Document SDI Applications | |
| |
| |
Gaps in the Framwork | |
| |
| |
The Last Word | |
| |
| |
| |
Multithreading | |
| |
| |
Multithreading Basics | |
| |
| |
Asynchronous Delegates | |
| |
| |
Multithreading in a Windows Application | |
| |
| |
The BackgroundWorker Component | |
| |
| |
The Thread Class | |
| |
| |
The Last Word | |
| |
| |
| |
Dynamic Interfaces and Layout Engines | |
| |
| |
The Case for Dynamic User Interface | |
| |
| |
Dynamic Content | |
| |
| |
Managing Control Layout | |
| |
| |
Layout Engines | |
| |
| |
The FlowLayoutPanel | |
| |
| |
The TableLayoutPanel | |
| |
| |
Layout Panel Examples | |
| |
| |
Markup-Based User Interface | |
| |
| |
The Last Word | |
| |
| |
| |
Help Systems | |
| |
| |
Understanding Help | |
| |
| |
Basic Help with the HelpProvider | |
| |
| |
HTML Help with the HelpProvider | |
| |
| |
Invoking Help Programmatically | |
| |
| |
Application-Embedded Support | |
| |
| |
The Last Word | |
| |
| |
| |
Advanced Custom Controls | |
| |
| |
| |
Skinned Forms and Animated Buttons | |
| |
| |
Shaped Forms and Controls | |
| |
| |
Animated Buttons | |
| |
| |
Improving the Performance of Owner-Drawn Controls | |
| |
| |
The Last Word | |
| |
| |
| |
Dynamic Drawing with a Design Surface | |
| |
| |
A Drawing Program with controls | |
| |
| |
A Drawing Program with Shape Objects | |
| |
| |
The Last Word | |
| |
| |
| |
Custom Extender Providers | |
| |
| |
Understanding Extender Providers | |
| |
| |
The StatusStripHelpLabel Provider | |
| |
| |
The HelplconProvider | |
| |
| |
The Last Word | |
| |
| |
| |
Advanced Design-Time Support | |
| |
| |
Control Designers | |
| |
| |
Smart Tags | |
| |
| |
Container and Collection Controls | |
| |
| |
Licensing Custom Controls | |
| |
| |
The Last Word | |
| |
| |
| |
Creating Usable Interfaces | |
| |
| |
Why Worry About the Interface? | |
| |
| |
A Brief History of User Interfaces | |
| |
| |
The Command-Line Era | |
| |
| |
The Question-Answer Model | |
| |
| |
The Menu-Driven Model | |
| |
| |
The GUI Era | |
| |
| |
Creativity vs. Convention | |
| |
| |
Consistency in .NET | |
| |
| |
The "Act Like Microsoft Office" Principle | |
| |
| |
Administrative Utilities | |
| |
| |
Know Your Application Type | |
| |
| |
Know Your User | |
| |
| |
Handling Complexity | |
| |
| |
Segmenting Information | |
| |
| |
Inductive User Interface | |
| |
| |
Helpful Restrictions | |
| |
| |
Restricting the User's Ability to Make a Mistake | |
| |
| |
Restricting the User's Choices | |
| |
| |
Restricting the User's Imagination | |
| |
| |
The Last Word | |
| |
| |
| |
ClickOnce | |
| |
| |
The Ground Rules | |
| |
| |
The ClickOnce Installation Model | |
| |
| |
ClickOnce Requirements | |
| |
| |
ClickOnce Limitations | |
| |
| |
A Simple ClickOnce Deployment | |
| |
| |
Choosing a Location | |
| |
| |
Deployed Files | |
| |
| |
Installing a ClickOnce Application | |
| |
| |
Updating a ClickOnce Application | |
| |
| |
ClickOnce Options | |
| |
| |
Publish Version | |
| |
| |
Updates | |
| |
| |
Prerequisites | |
| |
| |
Options | |
| |
| |
ClickOnce Security | |
| |
| |
ClickOnce Security Prompts | |
| |
| |
Partial Trust and ClickOnce | |
| |
| |
The Last Word | |
| |
| |
Index | |