Control.Add更改控件位置

时间:2013-03-07 22:43:21

标签: c# winforms

这很难解释。

以下是我的自定义控件的工作原理:

  1. 我制作了一个包含ContainerControl和VScrollBar
  2. 的自定义列表视图
  3. listview中的项目被添加到ContainerControl,在滚动移动中,项目将在ContainerControl中重新定位。
  4. 这是自定义列表视图的基本概念。

    现在:每个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);

0 个答案:

没有答案