DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C# (http://www.daniweb.com/forums/forum61.html)
-   -   Custom Control Button with different regions (http://www.daniweb.com/forums/thread40613.html)

mickeyfitzray Mar 6th, 2006 5:46 pm
Custom Control Button with different regions
 
Hi,

Im trying to create a button that will perform different functions depending on what part of the button you click. The button will be a diamond shape with six different regions on it that will perform different actions (play, pause, volume up/down etc). Does anyone know any good sites where I can get help with this as Im not sure where to start.

Thanks.

plazmo Mar 7th, 2006 10:27 am
Re: Custom Control Button with different regions
 
I suggest you create a control with 4 seperate buttons for each function, but then draw them together so it looks like one button.

below is code that makes a button look like a circle. this should be the onPaint function for the button. it shouldnt be to difficult to edit this to work for you


                // This method will change the square button to a circular button by 
                // creating a new circle-shaped GraphicsPath object and setting it
                // to the RoundButton objects region.
                private void roundButton_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
                {

                        System.Windows.Forms.Button tButton = (System.Windows.Forms.Button)sender;
                       

                        System.Drawing.Drawing2D.GraphicsPath buttonPath =
                                new System.Drawing.Drawing2D.GraphicsPath();

                       
                        // Set a new rectangle to the same size as the button's
                        // ClientRectangle property.
                        System.Drawing.Rectangle newRectangle = tButton.ClientRectangle;
                       
                        // Decrease the size of the rectangle.
                        newRectangle.Inflate(-10, -10);
       
                        // Draw the button's border.
                        e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle);

                        // Increase the size of the rectangle to include the border.
                        newRectangle.Inflate( 1,  1);


                        // Create a circle within the new rectangle.
                        buttonPath.AddEllipse(newRectangle);
               
                        // Set the button's Region property to the newly created
                        // circle region.
                        tButton.Region = new System.Drawing.Region(buttonPath);

                }


All times are GMT -4. The time now is 3:30 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC