Tải bản đầy đủ - 0 (trang)
Pro .NET 2.0 Windows Forms and Custom Controls in VB 2005

Pro .NET 2.0 Windows Forms and Custom Controls in VB 2005

Tải bản đầy đủ - 0trang

Macdonald_694-3FRONT.fm Page i Friday, July 28, 2006 6:48 AM



Pro .NET 2.0 Windows

Forms and Custom

Controls in VB 2005



■■■



Matthew MacDonald



Macdonald_694-3FRONT.fm Page ii Friday, July 28, 2006 6:48 AM



Pro .NET 2.0 Windows Forms and Custom Controls in VB 2005

Copyright © 2006 by Matthew MacDonald

All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,

electronic or mechanical, including photocopying, recording, or by any information storage or retrieval

system, without the prior written permission of the copyright owner and the publisher.

ISBN-13 (pbk): 978-1-59059-694-4

ISBN-10 (pbk): 1-59059-694-3

Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1

Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence

of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark

owner, with no intention of infringement of the trademark.

Lead Editor: Jonathan Gennick

Technical Reviewer: Manish Jayaswal

Editorial Board: Steve Anglin, Ewan Buckingham, Gary Cornell, Jason Gilmore, Jonathan Gennick,

Jonathan Hassell, James Huddleston, Chris Mills, Matthew Moodie, Dominic Shakeshaft, Jim Sumser,

Keir Thomas, Matt Wade

Project Manager: Elizabeth Seymour

Copy Edit Manager: Nicole LeClerc

Copy Editor: Heather Lang

Assistant Production Director: Kari Brooks-Copony

Senior Production Editor: Laura Cheu

Compositor: Susan Glinert Stevens

Proofreader: Liz Berry

Indexer: Michael Brinkman

Artist: April Milne

Cover Designer: Kurt Krames

Manufacturing Director: Tom Debolski

Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor,

New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail orders-ny@springer-sbm.com, or

visit http://www.springeronline.com.

For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA

94710. Phone 510-549-5930, fax 510-549-5939, e-mail info@apress.com, or visit http://www.apress.com.

The information in this book is distributed on an “as is” basis, without warranty. Although every precaution

has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to

any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly

by the information contained in this work.

The source code for this book is available to readers at http://www.apress.com in the Source Code section.



Macdonald_694-3FRONT.fm Page iii Friday, July 28, 2006 6:48 AM



For Hamid and Razia



Macdonald_694-3FRONT.fm Page iv Friday, July 28, 2006 6:48 AM



Macdonald_694-3FRONT.fm Page v Friday, July 28, 2006 6:48 AM



Contents at a Glance

Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv

About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii

About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix

Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii



PART 1



■■■



Windows Forms Fundamentals



■CHAPTER 1



User Interface Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3



■CHAPTER 2



Control Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41



■CHAPTER 3



Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71



■CHAPTER 4



The Classic Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109



■CHAPTER 5



Images and Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151



■CHAPTER 6



Lists and Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173



■CHAPTER 7



Drawing with GDI+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209



■CHAPTER 8



Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263



PART 2



■■■



Custom Controls



■CHAPTER 9



Custom Control Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321



■CHAPTER 10



User Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337



■CHAPTER 11



Derived Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365



■CHAPTER 12



Owner-Drawn Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389



■CHAPTER 13



Design-Time Support for Custom Controls . . . . . . . . . . . . . . . . . . . . 425



v



Macdonald_694-3FRONT.fm Page vi Friday, July 28, 2006 6:48 AM



PART 3



■■■



Modern Controls



■CHAPTER 14



Tool, Menu, and Status Strips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477



■CHAPTER 15



The DataGridView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519



■CHAPTER 16



Sound and Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577



■CHAPTER 17



The WebBrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589



PART 4



■■■



Windows Forms Techniques



■CHAPTER 18



Validation and Masked Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611



■CHAPTER 19



Multiple and Single Document Interfaces . . . . . . . . . . . . . . . . . . . . 651



■CHAPTER 20



Multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689



■CHAPTER 21



Dynamic Interfaces and Layout Engines . . . . . . . . . . . . . . . . . . . . . . 729



■CHAPTER 22



Help Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777



PART 5



■■■



Advanced Custom Controls



■CHAPTER 23



Skinned Forms and Animated Buttons . . . . . . . . . . . . . . . . . . . . . . . 811



■CHAPTER 24



Dynamic Drawing with a Design Surface . . . . . . . . . . . . . . . . . . . . . 839



■CHAPTER 25



Custom Extender Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871



■CHAPTER 26



Advanced Design-Time Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885



■APPENDIX A



Creating Usable Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927



■APPENDIX B



ClickOnce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943



■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963



vi



Macdonald_694-3FRONT.fm Page vii Friday, July 28, 2006 6:48 AM



Contents

Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv

About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii

About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix

Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii



PART 1



■■■



■CHAPTER 1



Windows Forms Fundamentals



User Interface Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Classes and Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

The Roles of Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Classes and Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

User Interface Classes in .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Controls Are Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Controls Can Contain Other Controls . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Controls Can Extend Other Controls . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Inheritance and the Form Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Accessing Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Interacting with a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Overriding Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

The View-Mediator Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Smart Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Smart Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Generating User-Interface Code in Visual Studio . . . . . . . . . . . . . . . 24

The Component Tray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

The Hidden Designer Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

The Application Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Designing Windows Forms Applications . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Developing in Tiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

The Last Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

vii



Macdonald_694-3FRONT.fm Page viii Friday, July 28, 2006 6:48 AM



viii



■C O N T E N T S



■CHAPTER 2



Control Basics



. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41



The Windows Forms Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

The .NET Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

The Control Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Control Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Windows XP Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Position and Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Overlapping Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Alpha Blending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Fonts and Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

System Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Large Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Access Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Focus and the Tab Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Responding to the Mouse and Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Handling the Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Handling the Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

A Mouse/Keyboard Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Mouse Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Low-Level Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

The Last Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70



■CHAPTER 3



Forms



. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71



The Form Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Form Size and Position. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Scrollable Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Showing a Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Custom Dialog Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Form Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Form Ownership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Prebuilt Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

Resizable Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

The Problem of Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Minimum and Maximum Form Size . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Anchoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Docking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Autosizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100



Macdonald_694-3FRONT.fm Page ix Friday, July 28, 2006 6:48 AM



■C O N T E N T S



Splitting Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

Building Split Windows with Panels . . . . . . . . . . . . . . . . . . . . . . . . . 105

Other Split Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

The Last Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108



■CHAPTER 4



The Classic Controls



. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109



The Classic Control Gallery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

LinkLabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

TextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

RichTextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

CheckBox and RadioButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

PictureBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

List Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

Other Domain Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

The Date Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

The DateTimePicker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

MonthCalendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Container Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

The TabControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

AutoComplete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

Drag-and-Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

“Fake” Drag-and-Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Authentic Drag-and-Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

Extender Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

The NotifyIcon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

ActiveX Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Should You Import ActiveX Controls? . . . . . . . . . . . . . . . . . . . . . . . . 148

The Last Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149



■CHAPTER 5



Images and Resources



. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151



The Image Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Common Controls and Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

The ImageList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Adding a Type-Safe Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

How Type-Safe Resources Work. . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Form Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Creating Additional Resource Files . . . . . . . . . . . . . . . . . . . . . . . . . . 165



ix



Macdonald_694-3FRONT.fm Page x Friday, July 28, 2006 6:48 AM



x



■C O N T E N T S



Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

Creating a Localizable Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

How Localization Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

The Last Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171



■CHAPTER 6



Lists and Trees



. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173



ListView Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

View Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

More Advanced ListViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

ListView Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

Label Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

ListView Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

Searching and Hit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

ListView Virtualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

TreeView Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

TreeView Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

TreeView Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

Manipulating Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

Selecting Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

More Advanced TreeViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

Node Pictures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

Expanding and Collapsing Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

TreeView Drag-and-Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

The Last Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208



■CHAPTER 7



Drawing with GDI+



. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209



Understanding GDI+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

Paint Sessions with GDI+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

Accessing the Graphics Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

Painting and Repainting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

Refreshes and Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

Painting and Resizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

The Graphics Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

Rendering Mode and Antialiasing . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

Brushes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

Drawing Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

The GraphicsPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233



Macdonald_694-3FRONT.fm Page xi Friday, July 28, 2006 6:48 AM



■C O N T E N T S



More-Advanced GDI+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

Alpha Blending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

Clipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

Coordinate Systems and Transformations . . . . . . . . . . . . . . . . . . . . 239

Performing a Screen Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

Optimizing GDI+ Painting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

Painting and Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

Double Buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

Painting Portions of a Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

Hit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

Painting Windows Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

The ControlPaint Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

Visual Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

Visual Style Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

Drawing with the VisualStyleRenderer . . . . . . . . . . . . . . . . . . . . . . . 258

Using a Control Renderer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

The Last Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261



■CHAPTER 8



Data Binding



. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263



Introducing Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

.NET Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

Basic Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

Data Consumers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

Data Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

A Data Access Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

Binding to a List (Complex Binding) . . . . . . . . . . . . . . . . . . . . . . . . . 270

Binding to a Grid (Complex Binding) . . . . . . . . . . . . . . . . . . . . . . . . . 272

Binding to Any Control (Simple Binding) . . . . . . . . . . . . . . . . . . . . . 273

Unusual Single-Value Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

Common Data-Binding Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

Updating with Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

Formatting Data with a Format String . . . . . . . . . . . . . . . . . . . . . . . 277

Formatting Data with the Format and Parse Events . . . . . . . . . . . . 279

Advanced Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

Creating a Lookup Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

Row Validation and Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285



xi



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Pro .NET 2.0 Windows Forms and Custom Controls in VB 2005

Tải bản đầy đủ ngay(0 tr)

×