在看一个自画菜单的设计的时候有一个问题很不理解!
这个点击一个命令"椭圆形"时(我已经在其命令的属性窗口中选择了DrawItem事件)
此时我在这个事件中添加这个代码:
private void menuItem2_DrawItem(object sender,
System.Windows.Forms.DrawItemEventArgs e)
{
Graphics g=e.Graphics;
//判断菜单项的状态
if ((e.State & DrawItemState.Selected)==DrawItemState.Selected)
{
//绘制背景填充矩形
g.FillRectangle(new SolidBrush(Color.Red),e.Bounds.Left,
e.Bounds.Top,e.Bounds.Width,e.Bounds.Height);
//绘制前景椭圆
g.DrawEllipse(new Pen(Color.Yellow,2.0f),e.Bounds.Left+5,e.Bounds.Top+3,
e.Bounds.Width-10,e.Bounds.Height-6);
}
else
{
//变换颜色绘制前景和背景
g.FillRectangle(new SolidBrush(Color.Yellow),
e.Bounds.Left,e.Bounds.Top,e.Bounds.Width,e.Bounds.Height);
g.DrawEllipse(new Pen( Color.Red,2.0f),e.Bounds.Left+5,e.Bounds.Top+3,
e.Bounds.Width-10,e.Bounds.Height-6);
}
}
我的问题是;1为什么在调用Drawlist()的时候这个Width和Height的参数设的是负数啊?
2.这个代码的if ((e.State & DrawItemState.Selected)==DrawItemState.Selected)这个条件是什么意思啊?
万分感激啊!