在可滚动面板中变为可见时图片框的位置错误
Wrong position of picturebox when turned visible in a scrollable panel
语境:
我正在使用 visual studio 2017 开发一个 windows 表单 c# 应用程序。
该应用有一个可滚动的面板 (AutoScroll = true
),里面装满了按钮。
每个按钮都关联到一个图片框。
它们重叠,大小相同,共享相同的 Tag
属性。
标签是:0 表示 btn0 和 picBox0,1 表示 btn1 和 picBox1,等等...
单击按钮时,其 Visible
属性设置为 false
,相应的 picBox 的 Visible
属性设置为 true
。
我的问题:
当 picBox 的可见性设置为 true 时,它不会 spawn/appear 在它放置在表单设计器中的位置...
它似乎没有在父面板中的相对位置生成...
这些图片可以帮助大家理解我的问题:
之前:
之后:
您几乎看不到 picBox5 的边框,但它们就在那里! (放大!哈哈)
在你提问之前:
是的,picBox 有好处 Tag
(5)
该位置在设计器中很好,应用程序运行时不会更改。
我用调试器看了看,位置似乎不错...
我想知道 picBox 是否从父窗体而不是父可滚动面板获取它的位置?
如何让图片框出现在合适的位置?
我所要做的就是在考虑滚动条位置的情况下重置目标 picBox 的位置:
picBox.Location = new System.Drawing.Point(picBox.Location.X + panel.AutoScrollPosition.X, picBox.Location.Y + panel.AutoScrollPosition.Y);
picBox.Visible = true;
您还需要确保能见度的变化发生在搬迁之后。
此可见性更改使滚动条改变其位置并导致重定位错误。
语境:
我正在使用 visual studio 2017 开发一个 windows 表单 c# 应用程序。
该应用有一个可滚动的面板 (AutoScroll = true
),里面装满了按钮。
每个按钮都关联到一个图片框。
它们重叠,大小相同,共享相同的 Tag
属性。
标签是:0 表示 btn0 和 picBox0,1 表示 btn1 和 picBox1,等等...
单击按钮时,其 Visible
属性设置为 false
,相应的 picBox 的 Visible
属性设置为 true
。
我的问题:
当 picBox 的可见性设置为 true 时,它不会 spawn/appear 在它放置在表单设计器中的位置...
它似乎没有在父面板中的相对位置生成...
这些图片可以帮助大家理解我的问题:
之前:
之后:
您几乎看不到 picBox5 的边框,但它们就在那里! (放大!哈哈)
在你提问之前:
是的,picBox 有好处 Tag
(5)
该位置在设计器中很好,应用程序运行时不会更改。
我用调试器看了看,位置似乎不错...
我想知道 picBox 是否从父窗体而不是父可滚动面板获取它的位置?
如何让图片框出现在合适的位置?
我所要做的就是在考虑滚动条位置的情况下重置目标 picBox 的位置:
picBox.Location = new System.Drawing.Point(picBox.Location.X + panel.AutoScrollPosition.X, picBox.Location.Y + panel.AutoScrollPosition.Y);
picBox.Visible = true;
您还需要确保能见度的变化发生在搬迁之后。
此可见性更改使滚动条改变其位置并导致重定位错误。