代码之家  ›  专栏  ›  技术社区  ›  LoukMouk

在可滚动面板中可见时,PictureBox的位置错误[重复]

  •  1
  • LoukMouk  · 技术社区  · 6 年前

    这个问题已经有了答案:

    上下文:

    我正在用Visual Studio 2017开发Windows Form C应用程序。

    该应用程序有一个可滚动的面板( autoscroll=true )中填充了按钮。

    每个按钮都与一个PictureBox相关联。

    它们都是重叠的,大小相同,并且共享相同的 tag attribute.

    标签为:0表示BTN0和PicBox0,1表示BTN1和PicBox1,等等…

    单击按钮时,其 visible attribute is set to false and the corresponding picbox's visible attribute is set to true

    我的问题:

    当Picbox的可见性设置为true时,它不会在放置在窗体设计器中的位置生成/显示…。

    它看起来不是在父面板中的相对位置生成的…。

    以下是帮助Yall理解我的问题的图片:

    以前:

    :

    你几乎看不到Picbox5的边界,但它们就在那里!(放大)!哈哈)

    在你问之前:

    是的,Picbox具有良好的

    该位置在设计器中很好,并且在应用程序运行时不会更改。

    我用调试程序看了看,位置似乎很好…

    我想知道Picbox是否从父窗体而不是父可滚动面板获得其位置?

    如何使图片框在适当的位置生成? 1答

    语境:

    我正在用Visual Studio 2017开发Windows Form C应用程序。

    这个应用程序有一个可滚动的面板( AutoScroll = true )按钮填充。

    每个按钮都与一个PictureBox相关联。

    它们都是重叠的,大小相同,共享相同的 Tag 属性。

    标签为:0表示BTN0和PicBox0,1表示BTN1和PicBox1等…

    单击按钮时, Visible 属性设置为 false 以及相应的Picbox 可见的 属性设置为 true .

    我的问题:

    当Picbox的可见性设置为true时,它不会在放置在窗体设计器中的位置生成/显示…

    它看起来不是在父面板中的相对位置生成的…

    以下是帮助Yall理解我的问题的图片:

    之前: enter image description here

    后: enter image description here

    你几乎看不到Picbox5的边界,但它们就在那里!(放大)!哈哈)

    在你问:

    是的,Picbox有好的 标签 (5)

    该位置在设计器中很好,并且在应用程序运行时不会更改。

    我用调试程序看了看,位置似乎很好…

    我想知道Picbox是否从父窗体而不是父可滚动面板获得其位置?

    如何使图片框在适当的位置生成?

    1 回复  |  直到 6 年前
        1
  •  0
  •   LoukMouk    6 年前

    我所要做的就是重新设置目标图片框的位置,同时考虑到滚动条的位置:

    picBox.Location = new System.Drawing.Point(picBox.Location.X + panel.AutoScrollPosition.X, picBox.Location.Y + panel.AutoScrollPosition.Y);
    picBox.Visible = true;
    

    您还需要确保 搬迁后能见度变化 .

    此可见性更改会使滚动条更改其位置,并导致重新定位错误。