سلام خدمت همه دوستان عزیز.
یکی از امکاناتی که در دات نت 2005 قرار داده شده امکان Custom Render بعضی کنترل های دات نت هستش. مثلاَ براحتی میشه برای ToolStrip یا MenuStrip رندر دلخواه و ایجاد کرد. اما چجوری؟؟؟ برای توضیح یه مثال میزنم:
داخل C#‎ یک پروژه جدید ایجاد کنید از نوع Windows Application. روی فرم یک کنترل ToolStrip و یک Button قرار بدید و یک کلاس به پروژه اضافه کنید و نام کلاس رو MyRender بزارید. وارد کلاس MyRender شده و خط public class MyRender رو به صورت زیر تغییر بدید:

public class MyRender : System.Windows.Forms.ToolStripRenderer

حالا داخل کلاس کدهای زیر رو بنویسید:

protected override void OnRenderToolStripBackground(System.Windows.Forms.T oolStripRenderEventArgs e)
{
base.OnRenderToolStripBackground(e);
Graphics g = e.Graphics;
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.ToolStrip.Bounds.Width, e.ToolStrip.Bounds.Height), Color.White, Color.Silver, 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.ToolStrip.Bounds.Width, e.ToolStrip.Bounds.Height));
}
}
protected override void OnRenderButtonBackground(System.Windows.Forms.Tool StripItemRenderEventArgs e)
{
base.OnRenderButtonBackground(e);

Graphics g = e.Graphics;
if (e.Item.Selected)
{
if (e.Item.Pressed)
{
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.Silver, Color.White, 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));
}
}
else
{
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.LightSkyBlue, Color.LightSkyBlue, 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));
}
}
}
}

حالا به فرم برنامه برگشته و کدهای زیر رو داخل کنترل button بنویسید:

toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode;
ToolStripManager.Renderer = new MyRender();

پس از اجرای برنامه و کلیک روی button خواهید دید که استایل toolStrip تغییر خواهد کرد. میتوان با اضافه کردن سایر قسمت های مربوط داخل کلاس استایل مورد نظر رو ایجاد کرد. این یکی از توانایی های جدید دات نت 2005 میباشد که باعث میشود کاربر نیازی به ایجاد یک کامپوننت جدید برای رندر کنترل نداشته باشد و فقط با ایجاد یک کلاس داخل برنامه این کار رو براحتی انجام بده. این کار رو برای تمام کنترل هایی که خاصیت RenderMode دارند میشه انجام داد.
موفق باشید.