【问题标题】:The wider I make my user control, the more gets cut off on the right我让用户控制的范围越广,右侧被切断的越多
【发布时间】:2013-06-10 13:38:03
【问题描述】:

我有一个包含 2 个子控件的用户控件:

  • 左侧的标签,Anchor 设置为 Left|Right|Top|Bottom
  • 右侧的图片框,Anchor 设置为 Right|Top|Bottom。

我希望图片框保持连接到控件的右侧,它在设计器中执行此操作。但是,当我实际运行我的程序时,如果我使控件的宽度超过大约 100 像素,图片框似乎会从控件的右侧浮动,而在 150 像素时,图片框(即 20x20)是完全不可见的!

我没有任何代码在运行时调整图片框的锚样式,那么这是怎么发生的,我该如何解决呢?

【问题讨论】:

  • 控件需要可调吗?你的 PictureBox 是如何对齐的?
  • 控件是可调节的,这样我就可以在标签的不同空间中显示不同数量的文本。例如,我可能有一个大空间,我想在标签中显示“50.00k (+8250)”,而一个小空间我只关心“50.00k”。
  • 图片框是否对齐?
  • 我想我的意思是锚。

标签: c# .net winforms


【解决方案1】:

我通过将父控件中的 AutoScaleMode 属性设置为 None 解决了这个问题。

【讨论】:

    【解决方案2】:

    实际上,使用 Dock 代替 Anchor 似乎已经解决了我的问题!我将图片框设置为停靠右侧,将标签设置为停靠填充,现在看起来正确!

    【讨论】:

      【解决方案3】:

      我建议您使用具有相同值的 Anchor 属性,而不是 Dock 属性。

      【讨论】:

      • 对不起,我实际上是在使用 Anchor。我只是错误地输入了 Dock。我会回去编辑我的帖子。
      • 啊,好吧...考虑其他选项:控件是否在面板内?因为在这种情况下,可能面板没有停靠在用户控件上。
      【解决方案4】:

      我认为仅使用 Anchors 而不是设置 Docks 可能会有所帮助:

      如果您只想将 PictureBox 附加到控件的右侧 - 使用 Anchor 属性设置为 Right |顶部(但它可以在左侧覆盖标签,以防控件宽度变小)

      如果您打算在垂直调整控件大小时拉伸 PictureBox,则设置 Anchor = Right |顶部 |底部。

      如果您希望 PictureBox 在容器控件调整大小时垂直和水平拉伸设置所有 Anchors(在这种情况下标签不会被 PictureBox 覆盖)

      Labels Anchor 最好设置为 Left |顶部,因为将其锚定到左侧 |是的,最近可能在使用不同的 TextAlign 值的情况下,在调整大小时会导致控件中的文本发生变化

      【讨论】:

      • 对不起,我使用的是 Anchor,而不是 Dock;我错误地输入了 Dock。
      • 我希望图片框保持 20x20,并扩展标签以填充其余空间。
      • 然后设置所有标签锚点,并为 PictureBox 设置 Right 和 Top 锚点 - 这可能会有所帮助
      • 顺便说一句最好不要使用 Dock 设置填充,因为那样的话你的 PictureBox 会覆盖你的标签(或标签覆盖 PictureBox),你现在可能看不到,因为你的标签现在没有填充很多文字,但可能稍后会显示
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多