我有一个自定义控件,它由一个Panel和一个较小的pictureBox组成。当我从图片框的Left,Top到Right,Bottom的DrawLine中,起点不在图片框的角落开始,并且偏移+ x和+ y。如果我展开pictureBox以占据Panel的整个大小,它将正确排列。这是怎么回事?DrawLine:左上角不正确
图片框是锚定到顶部,底部,左侧和右侧。没有对接。
private void pictureBoxPlot_Paint(object sender, PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawLine(Pens.LightGray,
pictureBoxPlot.Left, pictureBoxPlot.Top,
pictureBoxPlot.Right, pictureBoxPlot.Bottom);
pictureBoxPlot.Invalidate();
}
它引发了一个问题,为什么在使用面板的Paint事件时使用* extra *控件。除了在控制面板上有一个非零位置的偏移之外,PictureBox还会改变e.Graphics对象来实现SizeMode属性。当然这是位置属性在这里。使用PictureBox是一种非常昂贵的方式来将DoubleBuffered属性设置为true。 –
因为我在父母的地区(以及其他地方)绘图,所以我在等待其他控件,并认为OnPaint()会更新它们......第一次为我绘制代码......谢谢。 – moose