chapter 13 graphics, animation, sound, and drag-and-drop copyright © 2011 by the mcgraw-hill...
Post on 21-Dec-2015
216 views
TRANSCRIPT
![Page 1: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/1.jpg)
Chapter 13
Graphics, Animation, Sound, and
Drag-and-Drop
Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved.McGraw-Hill
![Page 2: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/2.jpg)
13-2
Objectives (1 of 2)
• Use Graphics methods to draw shapes, lines, and filled shapes.
• Create a drawing surface with a Graphics object.
• Instantiate Pen and Brush objects as needed for drawing.
• Create animation by changing pictures at run time.
• Create simple animation by moving images.
![Page 3: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/3.jpg)
13-3
Objectives (2 of 2)
• Use the Timer component to automate animation.
• Use scroll bars to move an image.
• Add a sound player component to add sound to a project.
• Incorporate drag-and-drop events into your program.
• Draw a pie chart using the methods of the Graphics object.
![Page 4: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/4.jpg)
13-4
Graphics in Windows and the Web
• Graphics refers to any text, drawing, image, or icon that is displayed on the screen in either:
–Windows Forms
• PictureBox control
• Can draw graphics shapes (circles, lines, rectangles) on a form or control
• Accepts more file formats than a Web Form
–Web Forms
• Image control
![Page 5: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/5.jpg)
13-5
The Graphics Environment
• >NET framework uses GDI+ technology for drawing graphics.
• GDI+ is designed to be device-independent.
• Code to draw a graphic is the same regardless of the output device.
![Page 6: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/6.jpg)
13-6
Steps for Drawing Graphics
• Create a Graphics object to use as a drawing surface.
• Instantiate a Pen or Brush object to draw with.
• Call the drawing methods from the Graphics object.
![Page 7: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/7.jpg)
13-7
The Paint Event Procedure
• Place code for drawing methods in the Paint event procedure for the form or control.
• Graphics are redrawn every time form is repainted or rendered.
• Declare a Graphics object.
• Assign the Graphics property of the procedure's PaintEventArgs argument to the new Graphics object.
Private Sub Form1_Paint(ByVal sender As Object, _ ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles Me.Paint' Create a graphics object.Dim Gr As Graphics = e.Graphics
![Page 8: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/8.jpg)
13-8
Pen and Brush Objects (1 of 2)
• Pen
• Used to draw lines or outlined shapes such as rectangles or circles
• Properties: Width, Color
• Brush
• Used to create filled shapes
• Property: Color
![Page 9: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/9.jpg)
13-9
Pen and Brush Objects (2 of 2)
• Width property• Specifies the width of the stroke of a line or
outlined shape created by Pen object
• Specified in pixels
• Default width = One pixel
• Color property• Specifies color of lines drawn by Pen object and
color of filled shapes drawn by Brush object
• Assigns color using Color constants
![Page 10: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/10.jpg)
13-10
Graphic Shapes Drawn with Pen and Brush Objects
Drawn with Pen
Drawn with Brush
![Page 11: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/11.jpg)
13-11
The Pen Class
• Constructors
• Examples
Pen(Color)Pen(Color, Width)
Dim RedPen As New Pen(Color.Red)Dim WidePen As New Pen(Color.Black, 10)
![Page 12: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/12.jpg)
13-12
The SolidBrush Class
• Constructor
• Example
SolidBrush(Color)
Dim BlueBrush As New SolidBrush(Color.Blue)
There are other Brush Classes:TextureBrush, HatchBrush, LinearGradientBrush, PathGradientBrush. See Help for more information.
![Page 13: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/13.jpg)
13-13
The Coordinate System (1 of 2)
• Graphics are measured from a starting point of 0,0 for the X and Y coordinates beginning in the upper-left corner.
• X represents the horizontal position and Y is the vertical position.
• The starting point depends on where the graphic is placed — each drawing method allows a specific starting position using X and Y coordinates.
• Most of the drawing methods allow the position to be specified using either
• Point structure• Size structure • Rectangle structure
![Page 14: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/14.jpg)
13-14
The Coordinate System (2 of 2)
Form
PictureBox
0,0Position
On Form
0,0Position OnPictureBox
![Page 15: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/15.jpg)
13-15
The Point Structure
• Designed to hold the X and Y coordinates as a single unit
• Create a Point object and give it values for X and Y.
• Use the object anywhere that accepts a Point structure as an argument.
• Example
Dim MyStartingPoint As New Point(20, 10)
![Page 16: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/16.jpg)
13-16
The Size Structure
• Two components, specified in pixels• Width (specified first)
• Height
• Use the object anywhere that accepts a Size structure as an argument.
• Example
Dim MyPictureSize As New Size(100, 20) ‘Width is 100, height is 20
![Page 17: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/17.jpg)
13-17
The Rectangle Structure
• Defines a rectangular region
• Specified by
•Upper left corner (X and Y coordinates )
•Size (width and height)
• Use the object anywhere that accepts a Rectangle structure as an argument.
• Example
Dim myOtherRectangle As New Rectangle(XInteger, YInteger, _ WidthInteger, HeightInteger)
Dim MyRectangle As New Rectangle(MyStartingPoint, MyPictureSize)
![Page 18: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/18.jpg)
13-18
Graphics Methods
• Two basic categories, draw and fill
• Draw methods create an outline shape with a Pen object.
• Fill methods are solid shapes created with Brush objects.
• Each method requires X and Y coordinates or a Point object; some require the size.
![Page 19: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/19.jpg)
13-19
Graphics Methods — General Form
DrawLine(Pen, x1Integer, y1Integer, x2Integer, y2Integer) DrawLine(Pen, Point1, Point2)
DrawRectangle(Pen, xInteger, yInteger, widthInteger, heightInteger)DrawRectangle(Pen, Rectangle)
FillRectangle(Brush, xInteger, yInteger, widthInteger, heightInteger)FillRectangle(Brush, Rectangle)
FillEllipse(Brush, xInteger, yInteger, widthInteger, heightInteger)FillEllipse(Brush, Rectangle)
![Page 20: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/20.jpg)
13-20
Graphics Methods — Code Example
Private Sub GraphicsForm_Paint(ByVal sender As Object, _ ByVal e As System.Windows.Forms.PaintEventArgs) _ Handles Me.Paint With e.Graphics Dim SmallRectangle as New Rectangle(10, 10, 30, 30).DrawRectangle(Pens.Red, SmallRectangle).DrawLine(Pens.Green, 50, 0, 50, 300)' Draw a blue filled circle.' If the width and height are equal, then the FillEllipse method' draws a circle; otherwise it draws an ellipse..FillEllipse(Brushes.Blue, 100, 100, 50, 50)' Draw a fat blue line..DrawLine(New Pen(Color.Blue, 15), 300, 0, 300, 300)End WithEnd Sub
![Page 21: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/21.jpg)
13-21
Selected Methods from the Graphics Class
• Clear( )
• Dispose( )
• DrawArc( )
• DrawLine( )
• DrawEllipse( )
• DrawRectangle( )
• DrawPie( )
• DrawString( )
• FillEllipse( )
• FillPie( )
• FillRectangle( )
See Help for information for all draw and fill methods
![Page 22: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/22.jpg)
13-22
Random Numbers
• Random class contains methods to return random numbers of different data types.
• To generate a different series for each run, use an integer value when instantiating an object from the Random class (seeding the random number generator).
• Can use system date to get different seed for each execution of code.
• Generate random numbers using the Random object’s Next method.
![Page 23: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/23.jpg)
13-23
The Random.Next Method• General Form
• Examples
' Any positive integer number.Object.Next( )' A positive integer up to the value specified.Object.Next(MaximumValueInteger)' A positive integer in the range specified.Object.Next(MinimumValueInteger, MaximumValueInteger)
' Return an integer in the range 0 – 10.GenerateRandomInteger = GenerateRandom.Next(10)' Return an integer in the range 0 to the width of the form.RandomNumberInteger = GenerateRandom.Next(1, Me.Width)
![Page 24: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/24.jpg)
13-24
Simple Animation
• Possible approaches• Display an animated .gif file in a PictureBox.• Replace one graphic with another.• Move a picture.• Rotate through a series of pictures.• Create graphics with various graphics methods.
• On a Web page, display animated .gif files or use a scripting language or Java Applets and avoid round trips to the server.
![Page 25: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/25.jpg)
13-25
Displaying an Animated Graphic
• Animation is achieved on either a Windows Form or a Web Form by displaying an animated.gif file.
• Use a PictureBox control on a Windows Form and an Image control on a Web Form.
![Page 26: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/26.jpg)
13-26
Controlling Pictures at Run Time
• Pictures can be added or changed at run time.
• To speed execution, load pictures in controls that can be made invisible and set Visible property to True at run time.
• Use the FromFile Method to load a picture at run time.
• Requires file name and path
• Store image files in Bin folder to eliminate need for path.
• To remove a picture from the display, either hide or use the Nothing constant.
![Page 27: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/27.jpg)
13-27
Switching Images
• Easy way to show animation is to replace one picture with another.
• Use images (or icons) of similar sizes.
• May use images (or icons) with opposite states (open/closed, on/off, etc.).
![Page 28: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/28.jpg)
13-28
Creating Animation
Each of the graphics is placed into the upper picture box when the user clicks the Change button.
![Page 29: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/29.jpg)
13-29
Moving a Picture
• Change the Left and Top properties
--OR--, better
• Use the control's SetBounds Method, which produces a smoother-appearing move.
![Page 30: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/30.jpg)
13-30
SetBounds Method
• Used to move a control or change its size
• General Form
• Examples
SetBounds(XInteger, YInteger, WidthInteger, HeightInteger)
PlanePictureBox.SetBounds(XInteger, YInteger, PlaneWidthInteger, PlaneHeight)Integer
EnginePictureBox.SetBounds(xInteger, YInteger, WidthInteger, HeightInteger)
![Page 31: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/31.jpg)
13-31
The Timer Component (1 of 2)
• Causes events to occur at a set interval with its Tick event
• Useful for animation; move or change an image each time the Tick event occurs
• Sets value at run time or design time
![Page 32: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/32.jpg)
13-32
The Timer Component (2 of 2)
• Interval property
• Between 0 and 65,535 milliseconds
• 1,000 milliseconds = 1 second
• Enabled property
• False (default) ==> Do not run Tick event
• True ==> Run Tick event at designated interval
• Tick event
• Occurs each time the Timer's designated interval elapses, if Enabled = True
![Page 33: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/33.jpg)
13-33
The Scroll Bar Controls
• Horizontal scroll bars • Vertical scroll bars• Used to scroll through a
document or a window• Used to control items
that have a range of values such as sound level, color, or size
• Can be changed in small or large increments
![Page 34: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/34.jpg)
13-34
Scroll Bar Properties (1 of 3)
• Together represent a range of values
• Minimum–Minimum value
• Maximum–Maximum value
• SmallChange–Distance to move when user clicks scroll arrows
• LargeChange–Distance to move when user clicks gray area of scroll
bar or presses Page-Up or Page-Down keys
![Page 35: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/35.jpg)
13-35
Scroll Bar Properties (2 of 3)
Gray Area(LargeChange property)
Scroll Box(Value property)
Scroll Arrow(SmallChange property)
Maximum value(Maximum property)
Minimum value(Minimum property)
![Page 36: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/36.jpg)
13-36
Scroll Bar Properties (3 of 3)
• Value Property
• Indicates the current position of thescroll box and the corresponding valuewithin the scroll bar
• User clicks up Scroll Arrow.–Value property decreases by the amount of the
SmallChange unless Minimum has been reached.
• User clicks down Scroll Arrow.–Value property increases by the amount of the
SmallChange unless Maximum has been reached.
![Page 37: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/37.jpg)
13-37
Scroll Bar Events
• ValueChanged event
• Occurs anytime the Value property changes, by user action or in code
• Scroll event
• Occurs when user drags the scroll box
• As long as user continues to drag scroll box, this event continues to occur.
• Only when user releases scroll box will Scroll event cease and ValueChanged event occur.
![Page 38: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/38.jpg)
13-38
The SoundPlayer Component
• Programs play sounds files, called wave files (.wav) using the new My.Computer.Audio.Play
--OR--
• A SoundPlayer component.
• The component’s SoundLocation property gives the location of the file.
![Page 39: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/39.jpg)
13-39
Adding Sounds Files
• When using sounds in a project, the best way is to add the files to the project’s resources.
• To refer to the filename in code, use “My.Resources.Filename”
![Page 40: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/40.jpg)
13-40
A Sound-Playing Program
• Users can choose to play one of the preselected sounds or select a file to play.
• File types are restricted using the filter property.
![Page 41: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/41.jpg)
13-41
Drag-and-Drop Programming (1 of 2)
• Often, Windows users use drag-and-drop events rather than selecting a menu item or pressing a button.
• Drag-and-drop programming requires that a user begin the drag-drop with a MouseDown event.
• Determine the effect of the drop with a DragEnter event.
• The event that holds the code for the drop is the DragDrop event.
![Page 42: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/42.jpg)
13-42
Drag-and-Drop Programming (2 of 2)
The Source object is dragged to the Target object in a drag-and-drop operation.
![Page 43: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/43.jpg)
13-43
The Source Object
• The item chosen to drag
• With .NET programming, begin a drag-drop operation by setting the source object using a control’s DoDragDrop method.
• The DragDrop effect specifies the requested action; choices include DragDropEffects.Copy, DragDropEffects.Move, and DragDropEffects.None.
• General Form Example
ObjectName.DoDragDrop(DataToDrag, DesiredDragDropEffect)
![Page 44: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/44.jpg)
13-44
The Target Object
• Location at which a user releases the mouse, a drop, is the target.
• Forms may have multiple targets.
• To set a control to be a target, set its AllowDrop property to True.
• Target control needs
• DragEnter procedure that sets the effect
• DragDrop event procedure that executes the action to take and when the drop takes place
![Page 45: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/45.jpg)
13-45
The DragEnter Event
• When a user drags a source object over the target, the target control’s DragEnter event fires.
• The argument is defined as DragEventArgs, which has special properties for the drag operation.
![Page 46: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d5a5503460f94a3a7fc/html5/thumbnails/46.jpg)
13-46
The DragDrop Event
• Statements to perform additional functions are added to the DragDrop event.
• Data that is being dragged is contained in the Data property of the argument of the DragDrop event procedure.
• Retrieve the dragged data using the GetData method of the Data object.
• Format the data or use a predefined clipboard data format.