ToolStrip control extended


Today one of my clients asked me to show a button in ToolStrip control. He provided that this button should look like a regular button. The one which we use on WinForms. The default button available in ToolStrip control provided limited set of properties than the regular button control. It does not support border, flaststyle etc. properties.

Then from MSDN I found out the ToolStripControlHost class which allows developer to extend any standard .net control and add it to the ToolStrip.
You have to just extend this class so as to add any control. Here is a sample code,
I have used 2 controls A Button and A LinkLabel.
    public class ToolStripControlButton : ToolStripControlHost
    {
        public ToolStripControlButton()
            : base(new Button())
        {
        }

        public Button ButtonControl
        {
            get
            {
                return Control as Button;
            }
        }
    }


    public class ToolStripControlLinkLabel : ToolStripControlHost
    {
        public ToolStripControlLinkLabel()
            : base(new LinkLabel())
        {
        }

        public LinkLabel LinkLabelControl
        {
            get
            {
                return Control as LinkLabel;
            }
        }
    }
Then in the loading event of a form you can add these controls to the ToolStrip as,

ToolStripControlButton tsBtn = new ToolStripControlButton();
tsBtn.Text = "test";

ToolStripControlLinkLabel tsCal = new ToolStripControlLinkLabel();
tsCal.Text = "Visit us";
tsCal.Alignment = ToolStripItemAlignment.Left;
            
toolStrip1.Items.Add(tsCal);
toolStrip1.Items.Add(tsBtn);

When you run your program and when form is loaded it will show you these statndard controls as a part of ToolStrip.

No comments:

Post a Comment

Labels

.net .Net Instrumentation logging .net localization Agile amazon amazon elasticache amazon services AppDomain Application Domain architecture asp ASP.Net authentication authentication mechanisms Byte order mark c# cache canvas app cdata certifications class classic mode cloud cloud computing cluster code-behind Combobox compilation Configuration providers configurations connection connectionString constructors control controls contructor CSV CTS .net types conversion database DataGridView DataSource DataTable DataType DBML delegates design pattern dispose double encoding Entity framework Events exception handling expiry fault contracts fault exceptions function pointers functions generics help HostingEnvironmentException IIS inner join instance management integrated mode javascript join left outer join LINQ LINQ join LINQ to SQL memory leak methods microsoft model driven app modes in IIS MSIL multiple catch blocks no primary key Nullable Osmos Osmotic Osmotic communication Osmotic communications page events page life cycle partial class PMI powerapps preserve precision points private contructor ProcessExit Project management properties property protect connectionString providerName providers query regular expression repository Responsive Web Design return type run-time RWD Saas self join session session expiry sessions singelton singleton pattern software as a service source control system SQLMetal string time management time-boxing toolstrip ToolStrip controls ToolStripControlHost tortoise SVN ToString() try catch finally update wcf web application web design web site web.config where-clause xml

Pages