【问题标题】:User control keeps stretching once dropped on form用户控件一旦放在表单上就会保持拉伸
【发布时间】:2012-03-07 15:46:54
【问题描述】:

这可能是一个 winforms newb 错误,但我创建了一个用户控件,其中包含一个组件 - Telerik 下拉列表控件。当我最初将它放在表单上时,它看起来是正确的。但是,一旦我运行表单,控件就会从表单中延伸出来。

用户控件上的下拉列表将其锚属性设置为 top/left/right/bottom。

之前:

之后:

我到底做错了什么?

编辑:更多信息:如果我关闭设计器并重新打开它,它会立即更改大小。代码本身似乎不会导致问题。事实上,我注释掉了所有代码(除了 InitializeComponent() 调用),我仍然看到了问题。控件本身仍然有效 - 当我运行表单时,它会填充我期望的数据。它只是被拉长了。

我可以通过将下拉列表的宽度设置为比我实际想要的大小小 35 个像素来“解决”这个问题,所以当它调整自身大小时,它实际上是正确的宽度,但我真的不应该有到。

【问题讨论】:

  • 表单中的用户控件?您是否尝试“识别”(例如分配不同的背景颜色、蓝色下拉菜单、红色用户控件...)每个控件的位置?
  • 也许你可以发布一点代码来向我们展示控件是如何实现的
  • 来自设计器,如果您调整包含用户控件的表单大小,您会看到此问题吗?检查用户控件和用户控件上的组件上的锚设置。

标签: c# winforms user-controls


【解决方案1】:

您可能走在正确的轨道上。看起来好像它正在锚定到页面之外的东西。我会尝试为初学者移除锚点,看看这有什么影响。如果这不起作用,也许可以尝试不同的锚定组合,看看它对控件有什么影响。

确保没有启用停靠设置,因为它会撤消您在控件上的任何锚定。

检查下拉列表控件包含在什么内容中。您说它在用户控件中,但它是在 UC 的网格中还是在其他类似的地方?此外,确保用户控件的大小正确(不在页面边界之外)——会导致锚定问题。使用背景颜色进行测试。

接下来,我会检查控件的最大/最小尺寸(也许考虑设置一个?)。

如果一切都失败了,删除下拉列表并创建一个新的,看看你是否有同样的问题。有时代码的设计者方面会出现故障并导致问题,或者您只是不小心更改了您无意更改的内容。

最后,最后,只使用普通的 drowndownlist ;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2017-05-24
    • 1970-01-01
    • 2016-03-17
    • 2018-08-15
    • 1970-01-01
    相关资源
    最近更新 更多