![]() |
Desktop Development »
Miscellaneous »
General
Beginner
License: The Code Project Open License (CPOL)
Easy to Use Marquee Control for Windows Form with Full Designer SupportBy Manish Ranjan KumarMarque control implementation using .NET 2.0 |
C# (C# 2.0), .NET (.NET 2.0), Visual Studio (VS2005), Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
This is a simple to use Marquee implementation for Windows Forms using .NET 2.0. This control allows you to customize itself easily and within seconds.
I was looking for a Marquee control for Window Forms. I found a couple but they were very restricted in features and moreover they were very restricted in events.
I decided to write a control which will fulfill all of my needs. Further it should be generic enough to be used by others too.
Marquee control has the following features:
You can use this control in two ways.
Use dragdrop feature of Visual Studio. I will recommend to use the compiled assembly for references. Otherwise if recompiling of assembly is done, you will need to restart Visual Studio.
Use designer of SuperMarquee to modify the control.
Use Properties of control to fine tune the rest of the properties:
Use Element collection editor to modify TextElement collection:
Use element designer to set element properties.
MarqueControl.Controls.SuperMarquee superMarquee1 =
new MarqueControl.Controls.SuperMarquee();
Use the following code to add element to the control:
TextElement element = new TextElement("Element text");
element.LeftImageIndex = 0;
element.RightImageIndex = 1;
element.IsLink = true;
element.ForeColor = Color.Red;
element.Tag = "Tag for element";
element.Font = new Font("Microsoft Sans Serif", 8.25F);
element.ToolTipText = "Tool tip for element";
superMarquee1.Elements.Add(element);
Alternatively you can use the following code snippet to add a new range of elements:
MarqueControl.Entity.TextElement textElement1 =
new MarqueControl.Entity.TextElement("TextElement 1");
MarqueControl.Entity.TextElement textElement2 =
new MarqueControl.Entity.TextElement("TextElement 2");
MarqueControl.Entity.TextElement textElement3 =
new MarqueControl.Entity.TextElement("TextElement 3");
superMarquee1.Elements.AddRange(new MarqueControl.Entity.TextElement[]
{
textElement1,
textElement2,
textElement3
}
);
This event is fired when user presses mouse button on the element text area.
private void superMarquee1_ItemClicked(object sender, ItemClickEventArgs e)
{
MessageBox.Show("Item clicked :" + e.Index);
}
This event is fired when user double clicks on the element text area. This has similar features as of ItemClicked.
private void superMarquee1_ItemDoubleClicked(object sender, ItemClickEventArgs e)
{
MessageBox.Show("Item double clicked :" + e.Index);
}
This event is fired when a lap is completed. Applicable only if AutoRewind is set to true. This event can be used in the following manner:
private void superMarquee1_LapCompleted(object sender, System.EventArgs e)
{
MessageBox.Show("Lap completed.");
}
This event is fired before tooltip is popped. It supports cancellation of the tooltip being displayed. Apart from cancel feature, it supports the following:
ToolTipText - Used to set ToolTip text Location - Used to set location of the tooltip Cancel - Used to cancel popup of tooltip HitTest() function can be used for get information on position of a point relative to the control.
HitTestInfo object contains the following properties:
Index - Index of the TextElement if point is above element otherwise it is -1 Point - Point where HitTest was performed Area - HitTestArea at which point is located HitTestArea enumeration contains the following members:
Item - Point is above Item. This does not include LeftImage or RightImage LeftImage - Point is above LeftImage of the element RightImage - Point was hit on RightImage of the element Strip - Point was hit on Strip Control - Point is inside the control, but not above Item, LeftImage, RightImage or Strip None - Point is outside the bounds of control HitTestInfo test = superMarquee1.HitTest(PointToClient(MousePosition));
switch(test.Area)
{
case HitTestArea.Item:
break;
case HitTestArea.LeftImage:
break;
case HitTestArea.RightImage:
break;
case HitTestArea.Strip:
break;
case HitTestArea.Control:
break;
case HitTestArea.None:
break;
}
Alternatively you can create a new instance of the HitTestInfo class in the following manner:
HitTestInfo test = new HitTestInfo(superMarquee1, PointToClient(MousePosition));
switch(test.Area)
{
case HitTestArea.Item:
break;
case HitTestArea.LeftImage:
break;
case HitTestArea.RightImage:
break;
case HitTestArea.Strip:
break;
case HitTestArea.Control:
break;
case HitTestArea.None:
break;
}
To use tooltip property AutoToolTip must be set to true. Predefined tooltip can be used or dynamic tooltip can also be used using event BeforeToolTip.
The following code snippet illustrates how to add dynamic tooltip to the element.
private void superMarquee1_BeforeToolTip
(object sender, GenericCancelEventArgs <ToolTipData> tArgs)
{
tArgs.Value.ToolTipText = "New dynamic text based on condition.";
}
The code below will illustrate how to change the position of the tooltip being displayed.
private void superMarquee1_BeforeToolTip
(object sender, GenericCancelEventArgs<ToolTipData> tArgs)
{
tArgs.Value.Location =
new Point(tArgs.Value.Location.X + 10, tArgs.Value.Location.Y + 20);
}
This is how your tooltip display can be cancelled.
private void superMarquee1_BeforeToolTip(object sender, GenericCancelEventArgs tArgs)
{
tArgs.Cancel = true;
}
HoverStop - Gets or sets that marquee will be running or not if mouse hover is there AutoRewind - Gets or sets on completion of one round of marquee it will start again or not Elements - Gets list of the TextElement associated with the control. Running - Gets or sets whether marquee is running or not AutoToolTip - Gets or sets whether tool tip will be shown automatically ImageList - Gets or sets the ImageList associated with the component StripColor - Gets or sets the Color of the stripe. Enable ShowStrip for displaying the strip. ShowStrip - Gets or sets that strip will be shown or not. MarqueeSpeed - Gets or sets the Speed of the marquee. Maximum speed is 999 and minimum speed is 1. ItemClicked - Fired when Item is clicked ItemDoubleClicked - Fired when Item is double clicked LapCompleted - Fired when lap is completed BeforeToolTip - Fired when ToolTip is about to display HitTest() - Performs the HitTest Reset() - Reset the control ResetMorquee() - Reset the marquee of control StartMarquee() - Starts marquee StopMarquee() - Stops marquee Text - Text displayed in this element ForeColor - Text color of the element IsLink - Indicates whether the element will be displayed as a link or not Font - Font of this element Tag - User data associated with the element LeftImageIndex - Left image index of the image to be displayed RightImageIndex - Right image index of the image to be displayed ToolTipText - Text displayed in this element Reset() - Reset the element
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 23 Mar 2008 Editor: Deeksha Shenoy |
Copyright 2008 by Manish Ranjan Kumar Everything else Copyright © CodeProject, 1999-2009 Web17 | Advertise on the Code Project |