O
Oleg
Здравствуйте! Я хочу создать обственное меню. Для этого я включаю свойство OwnerDraw = true. Дальше в событии DrawItem рисую прямоугольник, добавляю картинку, в общем извращаюсь. Но область выделения остается маленькой и не соответствует нарисованному прямоугольнику. Ее можно увидеть вызвав e.DrawBackground(). Подкажите, что нужно сделать для того, чтобы область выделения была такого же размера как и прямоугольник. e.Bounds не для редактирования. Вот код (причем взят в оновном из MSDN):
private void menuItem1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
e.DrawBackground();
string myCaption = ((MenuItem)sender).Text;
Brush myBrush = System.Drawing.Brushes.Blue;
Font myFont = new Font(FontFamily.GenericSerif, 14, FontStyle.Bold, GraphicsUnit.Pixel);
SizeF mySizeF = e.Graphics.MeasureString(myCaption, myFont);
e.Graphics.DrawString(myCaption, myFont, myBrush, e.Bounds.X, e.Bounds.Y);
e.Graphics.DrawRectangle(Pens.Black, new Rectangle(e.Bounds.X, e.Bounds.Y, Convert.ToInt32(mySizeF.Width), Convert.ToInt32(mySizeF.Height)));
}
Заранее благодарен.
private void menuItem1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
e.DrawBackground();
string myCaption = ((MenuItem)sender).Text;
Brush myBrush = System.Drawing.Brushes.Blue;
Font myFont = new Font(FontFamily.GenericSerif, 14, FontStyle.Bold, GraphicsUnit.Pixel);
SizeF mySizeF = e.Graphics.MeasureString(myCaption, myFont);
e.Graphics.DrawString(myCaption, myFont, myBrush, e.Bounds.X, e.Bounds.Y);
e.Graphics.DrawRectangle(Pens.Black, new Rectangle(e.Bounds.X, e.Bounds.Y, Convert.ToInt32(mySizeF.Width), Convert.ToInt32(mySizeF.Height)));
}
Заранее благодарен.