getstr88 发表于 2022-6-10 09:57

C# WinForm中如何让一个控件相对于另一个控件位置不变?

picturebox呈现一个很大的图片,所以将其放在panel中,并且panel设为有上下左右的scrollbar

我想实现,鼠标点击图片哪个位置,就将一个文本框控件的位置调整到点击位置的右上角各10像素处

但是按着滚动条滚动时,它不会随着图片滚动而滚动。这个怎么解决。初学winform,可能问的太简单了,请见谅

田田爱崽崽 发表于 2022-6-10 10:07

把控件的坐标设置为相对于图片顶点的坐标?

getstr88 发表于 2022-6-10 11:07

田田爱崽崽 发表于 2022-6-10 10:07
把控件的坐标设置为相对于图片顶点的坐标?

对呀, 我就是设置location,一开始肯定对的

但是,滑动滚动条。这个控件不会随着滚动条走呀 (不允许将这个控件的parent也设为 图片所在panel情况下,如何处理)

wpa 发表于 2022-6-10 12:11

      private void Form1_MouseClick(object sender, MouseEventArgs e)
      {
            // 301, 156
            this.textBox1.Location = e.Location;
      }

wpa 发表于 2022-6-10 12:12

wpa 发表于 2022-6-10 12:11
      private void Form1_MouseClick(object sender, MouseEventArgs e)
    ...

大致意思是这样, 可以在 Location 加上相对位置 即可。

getstr88 发表于 2022-6-10 16:58

田田爱崽崽 发表于 2022-6-10 10:07
把控件的坐标设置为相对于图片顶点的坐标?

求问下为什么

一开始我把上层的parent和下层的parent,都设为同一个panel

结果出现,如果下层的很大,使得panel滚动后,在给上层赋值location,就不对的

改为上层的parnet为下层控件就可以了


所以问下,panel在产生滚动后,其location是什么个情况呢?

田田爱崽崽 发表于 2022-6-10 20:07

getstr88 发表于 2022-6-10 16:58
求问下为什么

一开始我把上层的parent和下层的parent,都设为同一个panel


额,大神,我就是个二把刀。打扰咯
页: [1]
查看完整版本: C# WinForm中如何让一个控件相对于另一个控件位置不变?