在Panel上动态添加Control后出现问题

时间:2011-01-28 23:17:33

标签: c# .net winforms controls panel

我已将视图列表添加到Panel中,如下所示:

panelComponent.Controls.Add(viewListComponent);

一切正常。处理鼠标事件,重新绘制作品。但有一个问题:我不能动态地移动它。如果我更改control.Top变量,它就会在那里停留而不会移动。

就像控制器粘在左上角一样。调整右侧和底部属性的工作正常!我没有动态添加就没有问题。

导致这种情况的原因,以及如何解决?

2 个答案:

答案 0 :(得分:1)

两种可能的解释。首先是Dock属性,将它对接到顶部使控件保持在容器的顶部,无论您分配给Top或Location属性。

另一个是值类型,Location属性是Point,一个struct。此代码不会移动控件:

        var lbl = new Label();
        panel1.Controls.Add(lbl);
        var pos = lbl.Location;
        pos.Y = 42;  // No effect

答案 1 :(得分:0)

尝试使用Location属性:

viewListComponent.Location = new Point(42, 42);