private void mi_SubMenuItem_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
Rectangle rc = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
Brush sysBgBrush = new SolidBrush(SystemColors.Control);
Brush focuseBrush = new SolidBrush(Color.CornflowerBlue);
Font normalFont = new Font("Veranda", 10);
Brush normalTxBrush = new SolidBrush(Color.Blue);
Font focuseFont = new Font("Veranda", 10, FontStyle.Bold|FontStyle.Underline);
Brush focuseTxBrush = new SolidBrush(Color.Yellow);
Pen sysBdPen = new Pen(sysBgBrush);
Pen focuseBdPen = new Pen(new SolidBrush(Color.Black));
//erase the previous track
e.Graphics.FillRectangle(sysBgBrush , rc);
MenuItem mOrigin = (MenuItem)sender ;
string mItemText = mOrigin.Text ;
StringFormat textFormat = new StringFormat();
textFormat.Alignment = StringAlignment.Far ;
textFormat.LineAlignment = StringAlignment.Center;
Rectangle rcText = rc ;
rcText.Width-=5 ;
e.Graphics.DrawString(mItemText , normalFont, normalTxBrush, rcText, textFormat );
e.Graphics.DrawRectangle(sysBdPen, rc );
if ( e.State == ( DrawItemState.NoAccelerator | DrawItemState.Selected))
{
e.Graphics.FillRectangle(focuseBrush , rc);
e.Graphics.DrawString( mItemText , focuseFont , focuseTxBrush, rcText,textFormat);
e.Graphics.DrawRectangle(focuseBdPen, rc );
e.DrawFocusRectangle();
}
Image useImage = null ;
if ( mOrigin == mi_File_New )
{
useImage = this.imageList1.Images[0];
}
if ( mOrigin == mi_File_Open )
{
useImage = this.imageList1.Images[1];
}
if ( mOrigin == mi_File_Save )
{
useImage = this.imageList1.Images[2];
}
if ( useImage != null )
{
SizeF sz = useImage.PhysicalDimension;
e.Graphics.DrawImage(useImage, e.Bounds.X+5,
( e.Bounds.Bottom + e.Bounds.Top ) /2 - sz.Height/2);
}
}
private void mi_SubMenuItem_MeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e)
{
e.ItemHeight = 25;
e.ItemWidth = 75;
}