private class MyRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
{
var btn = e.Item as ToolStripButton;
if (btn != null && btn.CheckOnClick && btn.Checked)
{
Rectangle bounds = new Rectangle(Point.Empty, e.Item.Size);
e.Graphics.FillRectangle(Brushes.Transparent, bounds);
}
base.OnRenderButtonBackground(e);
}
}
我想,当我将鼠标移动到按钮上或点击它,然后使fillrectangle。 但它从来没有过线:为什么它永远不会进入按钮单击并使FillRectangle?
if (btn != null && btn.CheckOnClick && btn.Checked)
我用了一个断点,当我移动鼠标光标移到按钮,它停在:
if (btn != null && btn.CheckOnClick && btn.Checked)
而且继续永远不会进入。 IF线有问题。
编辑:
这是我所看到的,当我把鼠标移动到按钮上:
,我想,当我在按钮上移动鼠标光标和/或点击在它上面,它会保持透明,就像它处于原始状态。这是原来的状态时,运行了一个程序,鼠标光标IM是不在按钮:
这是现在使用的代码IM:
private class MyRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
{
var btn = e.Item as ToolStripButton;
if (btn != null || btn.CheckOnClick || btn.Checked)
{
Rectangle bounds = new Rectangle(Point.Empty, e.Item.Size);
e.Graphics.FillRectangle(Brushes.Transparent, bounds);
}
base.OnRenderButtonBackground(e);
}
}
这是越来越向线:
Rectangle bounds = new Rectangle(Point.Empty, e.Item.Size);
e.Graphics.FillRectangle(Brushes.Transparent, bounds);
但是按钮周围的颜色仍然是这个淡蓝色,就像我上传的第一张截图一样。 任何方式来改变它?
我想要做的就是像在Internet Explorer 11,当您在图标上移动鼠标/在右上角图片的图标/图像改变颜色,但它周围有没有矩形:
这是从Internet Explorer常规状态下的截图:
这是Internet Explorer时,鼠标光标在图标/图像之一:
我想你需要检查你的规则,如果,你想检查什么?你需要什么? – felipekm
你可以选择和悬停在3个条件,以检查哪些是意外错误.. – TaW