【问题标题】:How to overlay buttons on form background image如何在表单背景图像上叠加按钮
【发布时间】:2021-04-22 11:55:30
【问题描述】:

示例背景图片:

我正在使用 C# 2019 开发一个 winforms 应用程序。我创建了一个带有上图所示背景图像的表单(仅用于说明目的)。我想要做的是将按钮放在按钮 A 和 B 的顶部,以便在调整表单大小时按钮也会调整大小并继续覆盖按钮 a 和 b。这应该适用于所有屏幕尺寸。

我的问题是当表单移动到不同大小的屏幕时,我的按钮和背景图像上的按钮不对齐。如何解决这个问题。

我尝试使用停靠栏和锚点属性以及面板和表格布局控件,但均未成功。请帮忙。

【问题讨论】:

  • 在我的头顶上:将它们放在一个面板中,所有锚点都打开。然后将该面板放在 TableLayoutPanel 中并将尺寸设置为百分比。 TLP 也应该锚定或停靠以调整表单的大小
  • 也许像这样使用:button1.Location = new Point(20, this.Size.Height-30);button2.Location = new Point(100, this.Size.Height-30); 这样的东西放在 Form1 加载事件中?

标签: c# winforms desktop-application


【解决方案1】:

您可以将TableLayoutPanel 添加到包含五列和三行的表单中:

第 0 列:“按钮 A”左侧的宽度 第 1 列:“按钮 A”的宽度 第 2 列:“按钮 A”和“按钮 B”之间的宽度 第 3 列:“按钮 B”的宽度 第 4 列:“按钮 B”右侧的宽度 第 0 行:“按钮 A”和“按钮 B”上方的高度 第 1 行:“按钮 A”和“按钮 B”的高度 第 2 行:“按钮 A”和“按钮 B”下方的高度

列宽和行高都将设置为百分比。 TableLayoutPanel 将覆盖与图像相同的区域,因此如果图像覆盖整个表单,则 Dock 设置为 Fill。现在表单、图像和TableLayoutPanel 都将同步扩展和收缩。您现在可以将 Button 控件放置在图像中“按钮 A”和“按钮 B”上方的单元格中,并将其 Dock 属性也设置为 Fill,您将获得所需的效果。

编辑:

替代方法是根本不使用控件并处理表单的MouseClick 事件,然后做一些算术来确定用户是否单击了这些虚拟按钮。但是,您不会以这种方式获得Button 控件提供的动画。

【讨论】:

  • 我可以就第一个建议与您取得联系吗?您可以发送电子邮件至 mutongigava007@gmail.com
  • @MutongiGava,对不起,没有。这不是这样的网站的意义所在。做你的研究,为自己实施你能做的事情,然后在遇到特定问题时提出另一个问题。
猜你喜欢
  • 2017-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多