Click here to Skip to main content
15,893,487 members
Articles / Desktop Programming / Windows Forms

ButtonBar Control using .NET

Rate me:
Please Sign up or sign in to vote.
4.95/5 (43 votes)
3 Dec 2009CPOL5 min read 64.9K   5.5K   104  
Themed ButtonBar control supporting custom draw with full Designer support
using System.Drawing;
using System.Windows.Forms;

namespace ButtonBarsControl.Design.Generics
{
    /// <summary>
    /// Represents a method which can handle generic click event
    /// </summary>
    /// <typeparam name="T">Generic type which can be associated with the event.</typeparam>
    /// <param name="sender">Event source</param>
    /// <param name="e">Object containing event data.</param>
    public delegate void GenericClickEventHandler<T>(object sender, GenericClickEventArgs<T> e);

    /// <summary>
    /// Class storing information related to generic click event
    /// </summary>
    /// <typeparam name="T">Generic type which can be associated with the event.</typeparam>
    public class GenericClickEventArgs<T> : GenericEventArgs<T>
    {
        private readonly MouseButtons button;
        private readonly Point position;

        /// <summary>
        /// Initializes a new default instance
        /// </summary>
        public GenericClickEventArgs()
        {
            button = MouseButtons.None;
            position = Point.Empty;
        }

        /// <summary>
        /// Initializes a new instance using specified parameters
        /// </summary>
        /// <param name="value">Object to be associated with the event.</param>
        /// <param name="button">Mousebutton which was clicked</param>
        /// <param name="position">Position of mouse</param>
        public GenericClickEventArgs(T value, MouseButtons button, Point position) : base(value)
        {
            this.button = button;
            this.position = position;
        }

        /// <summary>
        /// Gets which mouse button was clicked.
        /// </summary>
        public MouseButtons Button
        {
            get { return button; }
        }

        /// <summary>
        /// Gets mouseposition when click was performed.
        /// </summary>
        public Point Position
        {
            get { return position; }
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions