0

这将很难解释。

这是我的自定义控件的工作方式:

  1. 我制作了一个包含 ContainerControl 和 VScrollBar 的自定义列表视图
  2. 列表视图中的项目被添加到 ContainerControl,在滚动移动时,项目在 ContainerControl 中重新定位。

这就是自定义列表视图的基本思想。

现在:每个 ListviewItem 的高度为 111 并且像魅力一样工作。直到我准确地添加了 295 个项目,这些项目之后的项目看起来有些奇怪。

每个 ListviewItem 在 Paint 事件中都包含图片框、进度条、标签、一些按钮和一些自定义绘画之类的东西。

现在,ListviewItems 上被绘制的所有内容(在 Paint 事件中)都已正确定位。但是,使用 Controls.Add() 添加的某些(!)控件不是,它们似乎获得了负 Y 值。

当我在 SomeControl.Location = new Point(x, y) 之后设置断点时,控件确实具有正确的值,但是在我使用 Controls.Add() 将控件添加到 ListviewItem 之后,Y 值为负。最奇怪的部分是一些控件没有得到这个,这可能是解决这个问题的一种方法。

我真的希望你能理解我想要弄清楚的东西,如果你不明白的话,请问我。

编辑:这是 WinForms。不能显示很多代码,因为它只是 Control.Location = x; 和 Controls.Add(c);

4

0 回答 0