我在ToolStrip中有一个ToolStripButton,我想在它周围画一个边框。这是我使用的代码:
private void tsbtnSearch_Paint(object sender, PaintEventArgs e)
{
ToolStripButton btn = (ToolStripButton)sender;
ControlPaint.DrawBorder(e.Graphics, btn.Bounds,
Color.Red, 3, ButtonBorderStyle.Outset,
Color.Red, 3, ButtonBorderStyle.Outset,
Color.Red, 3, ButtonBorderStyle.Outset,
Color.Red, 3, ButtonBorderStyle.Outset);
}边框的绘制如下图所示:

我需要做什么才能得到正确的坐标?
发布于 2020-04-10 03:51:55
你就快到了。您可以使用更简单的DrawBorder变体,并使用按钮宽度和高度手动定义边框的矩形:
ToolStripButton btn = (ToolStripButton)sender;
ControlPaint.DrawBorder(
e.Graphics,
new Rectangle(0, 0, btn.Width, btn.Height),
// or as @LarsTech commented, this works fine too!
// btn.ContentRectangle,
Color.Red,
ButtonBorderStyle.Solid); 在这种情况下,边框的矩形不是按钮的边界(IMO,因为ToolStripButton不是平面按钮,而是一个复杂的对象ToolStripItem,它不仅仅具有按钮)。

https://stackoverflow.com/questions/61128977
复制相似问题