Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C# ПІДРУЧНИКИ / c# / Manning - Windows.forms.programming.with.c#.pdf
Скачиваний:
108
Добавлен:
12.02.2016
Размер:
14.98 Mб
Скачать
List-

Highlight a set of files in Windows Explorer. Drag these files into one of the album windows. Each file is added to the window if not already present. The last file added is displayed in the window.

Click on an image displayed in one album window and drag it to a second album window. The image is added to the second album, or displayed if it is already present.

This completes our drag and drop example. We should also mention that the

View and TreeView classes support per-item dragging via the ItemDrag event. The ItemDrag event occurs when the user begins dragging an item in the list or tree. Typically, the event handler for the ItemDrag event calls the DoDragDrop method as we did in this section, with the object associated with a specific list item or tree node as the source of the operation. For example, we could modify our MyAlbumExplorer interface to permit photographs to be reordered within the ListView control, or dragged into a new album in the TreeView control.

18.4ACTIVEX CONTROLS

Our final section will look at how to include an ActiveX control, more specifically the Microsoft Web Browser control, within a Windows Forms application. We will avoid a detailed discussion of ActiveX in general and the Web Browser control in particular, and instead allow the example to speak for itself.

Our example will host a browser control within an About Box dialog for our MyPhotos application. This may seem slightly unorthodox, but should create an interesting example while still presenting the topic at hand.

The foundation of ActiveX support in Windows Forms is the AxHost control. This abstract class is, quite simply, a control that hosts, or displays, an ActiveX control as a full-featured Windows Forms control. The class is based on the Windows Forms Control class so that the standard properties, methods, and events we have discussed throughout the book are available in hosted controls. The .NET framework provides an ActiveX Control Importer tool to generate an AxHost interface for a specific ActiveX control. We will discuss this tool in a moment.

In our application, we will create an AboutBox form to display information about the application. As shown in figure 18.4, this Form will include a LinkLabel object that will link to the web site for this book.

Figure 18.4

This form uses a Label control to display the application Icon, and LinkLabel controls to initiate user actions.

ACTIVEX CONTROLS

625

We could just as easily use Button controls rather than link labels. Since we have not used LinkLabel objects in a previous example, this is a good opportunity to do so here. When the user clicks the “Click to close window” label, the window will close as we have seen with a Close button in previous examples. When the user clicks the “Click for book’s web site” label, a hidden panel will appear and display the web site for the book you are reading. This is shown in figure 18.5. Note in this figure that the title bar of the form reflects the current web page title, and the link label text now allows the user to hide the web browser. Of course, connecting to the web site presumes you have an active connection to the Internet available.

Figure 18.5 In the embedded web page in this window, the user can follow any links displayed and perform other standard browser actions in the window.

We will divide our discussion into three sections. First we will create the form required; then we will wrap the Web Browser control in an AxHost control, and finally we will use this new control to display the web page as in figure 18.5.

18.4.1CREATING THE ABOUT BOX

Our first task is to create the new Form class for our new About box. The steps required are as follows:

626

CHAPTER 18 ODDS AND ENDS .NET

Set the version number of the MyPhotos application to 18.4.

 

 

 

 

 

DESIGN THE ABOUT BOX FORM

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Action

 

Result

 

 

 

 

 

 

 

 

 

 

1

Add a new Form class file to the

 

 

 

MyPhotos project called

 

 

 

AboutBox.cs.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

Assign the following settings to the

 

 

 

form.

 

 

 

 

 

 

 

 

 

Settings

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Property

 

Value

 

 

 

 

 

MinimizeBox

 

False

 

 

 

 

 

ShowInTaskbar

 

False

 

 

 

 

 

Size

400,144

 

 

 

 

 

 

 

StartPosition

 

CenterParent

 

 

 

 

 

Text

 

About MyPhotos

 

 

 

 

 

 

 

 

 

 

 

 

3

Drag an ImageList onto the form

 

 

 

and set the following properties:

 

 

 

 

 

Settings

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Property

 

Value

 

 

 

 

 

(Name)

 

imageIcons

 

 

 

 

 

ImageSize

 

32, 32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

Add the following icons from the

 

 

 

common image directory to the

 

 

 

Images collection for this list.

 

 

 

• icons/Writing/BOOK02.ICO

 

 

 

• icons/Writing/BOOKS04.ICO

 

 

 

 

 

 

 

 

 

 

 

 

ACTIVEX CONTROLS

627

DESIGN THE ABOUT BOX FORM (continued)

Action

Result

5Add the four labels, namely two

Label controls and two LinkLabel controls, to the form. Size and position them as shown in the graphic.

 

Settings

 

 

 

 

 

Control

Property

 

Value

Icon

(Name)

 

lblIcon

Label

BorderStyle

 

FixedSingle

 

 

 

ImageList

 

imageIcons

 

ImageIndex

 

0

 

Text

 

 

Text

(Name)

 

lblAboutText

Label

Anchor

 

Top, Left, Right

 

 

 

BorderStyle

 

Fixed3D

 

Text

 

MyPhotos

Site Link

(Name)

 

linkWebSite

 

Text

 

Click for book’s

 

 

 

web site

Close

(Name)

 

linkClose

Link

Anchor

 

Top, Right

 

 

 

Text

 

Click to close

 

 

 

window

 

TextAlign

 

TopRight

 

 

 

 

6

Also add a hidden Panel control to

 

the base of the form.

 

 

 

Settings

 

 

 

 

 

 

 

Property

Value

 

 

(Name)

pnlWebSite

 

 

Anchor

Top, Bottom, Left, Right

 

 

BorderStyle

Fixed3D

 

 

Visible

False

 

 

 

 

Note: The panel is visible in Visual Studio even

 

 

 

 

 

 

 

though it will be hidden when the form is actu-

 

 

 

 

ally displayed.

This completes the design of our AboutBox form. We will also need a menu in the ParentForm class to display this form.

628

CHAPTER 18 ODDS AND ENDS .NET

Соседние файлы в папке c#