0
protected override void OnPaint(PaintEventArgs e)
{
    e.Graphics.DrawImage(render, 400, 400);
}

这是 Form1 类的 OnPaint。该表单有一个列表框。问题在于在表单上调整大小时渲染仅部分显示。列表框是否以某种方式将其剪掉?列表框和位图不重叠。

我尝试了以下方法:

  1. 调用 base.OnPaint(e); 在 DrawImage(); 之前和之后。
  2. 将表单设置为 doublebuffer、userpaint、在 WM conf 中绘制所有内容等。
  3. 在 DrawImage() 之前和之后,使用我想出的每个组合尝试列表框的 Refresh() 和 Update()
4

1 回答 1

1

是的,ListBox 有自己的窗口句柄和 Paint 事件。您不能在 LB 上作画。通常,您也不希望它会掩盖 LB 中显示的任何信息。解释你为什么要这样做。

于 2008-11-28T20:29:19.450 回答