我正在使用一个Panel
来容纳一组控件(由用户定义)。我添加这些面板的方式是,在将其添加到面板之前,基于Panel.Controls.Count
设置控件的位置。
comRec.Location = new Point(comRec.Location.X, panel1.Controls.Count * 25);
panel1.Controls.Add(comRec);
现在,这个功能运行得很好,看起来也和我想要的一样。然而,一旦我们到达窗口的限制,
AutoScroll
就会启用(我确实希望如此)。现在,如果用户滚动到 Panel
的底部,这将最终改变面板中每个控件的位置。我的第一个 comRec.Location
不再是 (0,0),而是像 (0,-219) 这样的位置。所以现在,当用户添加另一个 comRec
对象时,它会在对象之间创建一个巨大的间隔。我的问题是,如何在滚动条更改位置的情况下考虑位置的变化,并仍然使用我的添加系统。我假设需要检查滚动条的值并使用它来确定位置。
另外,有没有更好的方法来显示控件列表?我应该使用一个
Panel
吗?