vb.net在SplitContainer1.Panel1添加button,添加逻辑为x坐标不变,以固定增量y坐标依次添加,当出现滑动框时,如果不移动滑动框仍能正确添加Button,若移动滑动框,button添加位置因滑动框移动导致坐标原点发生改变而产生错误
时间: 2024-03-13 22:44:54 浏览: 98
vbnet动态添加按钮
这个问题可能是因为你在添加新的button时,没有考虑到SplitContainer1.Panel1的滑动框。当滑动框滚动时,坐标原点确实会发生改变,从而导致button的位置错误。
为了解决这个问题,你可以在添加新的button之前,先记录当前SplitContainer1.Panel1的滚动位置和坐标原点,然后在计算新button的位置时,将这些位置信息考虑在内。具体实现方法可以参考以下代码:
```
' 记录当前滚动位置和坐标原点
Dim scrollPosition As Point = New Point(SplitContainer1.Panel1.HorizontalScroll.Value, SplitContainer1.Panel1.VerticalScroll.Value)
Dim origin As Point = SplitContainer1.Panel1.AutoScrollPosition
' 添加新的button
Dim newButton As New Button()
newButton.Text = "Button " & (SplitContainer1.Panel1.Controls.Count + 1)
newButton.Location = New Point(10, origin.Y + 10 + 30 * SplitContainer1.Panel1.Controls.Count - scrollPosition.Y)
SplitContainer1.Panel1.Controls.Add(newButton)
```
这段代码中,首先记录当前SplitContainer1.Panel1的滚动位置和坐标原点。然后再添加新的button,通过将滚动位置和坐标原点考虑在内,计算出新button的位置,从而确保其位置正确。
希望这个解决方案能够帮助你解决问题。如果你有任何其他问题,请随时问我。
阅读全文