NET User Interfaces in Csharp Windows Forms and Custom Controls [Electronic resources]

Matthew MacDonald

نسخه متنی -صفحه : 142/ 101
نمايش فراداده

Chapter 13: GDI+ Controls

Overview

Owner-drawn controls are one of the most ambitious projects a developer can undertake. This is not because they are conceptually tricky, but because a moderately sophisticated control needs a great deal of basic code just to handle all aspects of its appearance. If you can create a control using composition (i.e., a user control) or by inheriting from a similar control class, as shown in Chapter 7, you'll save yourself a great deal of effort. On the other hand, if you need complete control over drawing and behavior, or you want to introduce some of the unusual GDI+ features to your user interface, you need to create a control that performs its painting manually.

The prime advantage to GDI+ controls is freedom. The prime disadvantage with GDI+ controls is that they aren't nearly as autonomous as prebuilt controls. For example, with custom GDI+ controls you need to handle the following details manually:

Scrolling support

Focus cues (i.e., indicating when the control has focus)

The "pushed" state appearance for a button control

Special cues or "hot tracking" appearance changes when the mouse moves over the control

Hit testing to determine if a click was made in an appropriate area

This chapter introduces several example controls, and shows how they confront these problems and add a few visual treats.