C#Windows窗体,选项卡上的控件

时间:2009-09-11 09:19:58

标签: c# windows winforms controls tabcontrol

我的表格上有一个tabcontrol,每个标签上都有一个控件,每个控件都相似,即每个控件都有一个表和几个按钮,每个控件都设置为Dock Fill

当我在设计视图中查看它们时,会发生一些奇怪的事情,第一个可查看的选项卡让它按照您的预期放置控制并且一切正常,但是第二个和第三个选项卡每个控件显示偏离中心,重叠标签的边缘。

我已尝试在不同的标签上放置不同的控件,看起来如果控件在第一个标签上显示正常,如果它在任何其他标签上,它有时会显得很奇怪。

真正的大问题是,它似乎也出现在运行时,但有时只是出现。

我已经检查了控件和标签的属性,但似乎都是一样的。

非常感谢任何建议。

亲切的问候

MEEM

4 个答案:

答案 0 :(得分:0)

对我来说似乎是一个错误,请确保您拥有Visual Studio的所有最新更新。

答案 1 :(得分:0)

这是您放置在标签上的UserControl吗?如果是这样,我会检查用户控件上的所有布局属性和用户控件中的子控件。我之前遇到过这个问题,但是我不记得我做了什么来修复它。

答案 2 :(得分:0)

试试这个:

  1. 首先要验证控件的z顺序是否正确。为此,打开“文档大纲”窗口(“查看” - >“其他Windows->文档大纲”),然后逐个检查每个控件的顺序。设置控件的对接属性时,控件的z顺序反向应用;即:文档大纲中显示的第一个子控件具有与文档大纲窗口中较低级别相同的对接优先级。

  2. 验证同一父级(在您的情况下为tabControl)中没有2个子控件具有DockStyle.Fill。作为对接的良好实践,只有一个子控件应将其对接设置为Fill。如果您遇到这种情况,很可能重新考虑布局流程将允许您更改它并且只有一个具有填充。其他对接样式(右,左,上,下)可以在多个子控件中使用,它们永远不会导致任何问题。只有填充是有问题的。

  3. 如果1还是2解决了你的问题,我建议如果要完全避免对接并使用Anchoring代替。基本上,您可以使用控件的Anchor属性获得非常相似的结果。我实际上更喜欢这种方法,因为它有点类似于WPF锚定。

  4. 如果1,2不能解决您的问题。使用您的文档大纲发布图像,我将在此处重新创建,修复并在此处发布解决方案。

  5. 希望它有所帮助!

答案 3 :(得分:0)

我认为这些是我们正在讨论的用户控件。您是否更改了控件(类)本身的布局,因为您已将用户控件添加到选项卡中?如果是这样,它们将不会自动更新为新值(对于Dock,宽度,高度等)。