如何在继承的用户控件中更改继承项的位置

5
我曾使用一个用户控件作为基类(我们称之为BaseUC),上面有三个标签(分别在三行中,均为保护类型)。
还有另一个用户控件继承自它(InheritedUC)。我在InheritedUC中添加了两个标签,它们位于基类标签之间(因此有5行)。
在Visual Studio的设计UI视图中一切正常。但是当我运行应用程序时,BaseUC 上的标签会与 InheritedUC 上的标签重叠,从而看不到继承控件上的标签。
有什么想法可以解决这个问题吗?非常感谢。

这是一个设计问题,与您的HTML或CSS有关。这不是一个ASP.NET、C#或继承问题。 - Kundan Singh Chouhan
1
你可能需要明确设置顶部和左侧位置,只需检查当前正在呈现/生成的内容即可。或者在基类中使用某种计算的公共属性,以便您的子类也可以使用。 - Ravi Y
谢谢ryadavilli。我在继承类中明确设置了顶部位置。但是我在想是否有办法避免这样做。 - Yalda
2个回答

1

来自 MSDN: Control.Anchor 属性

使用 Anchor 属性定义控件在其父控件调整大小时如何自动调整大小。 将控件锚定到其父控件可以确保锚定的边缘相对于父控件的边缘保持在相同的位置,当父控件调整大小时。

您可以将控件锚定到其容器的一个或多个边缘。例如,如果您有一个带有按钮的窗体,其 Anchor 属性值设置为顶部和底部,则该按钮会被拉伸以保持与窗体顶部和底部边缘的锚定距离随着窗体高度的增加而增加。

在所有标签上设置 Anchor 属性: 例如:

label1.Anchor = AnchorStyles.Top | AnchorStyles.Left;

1

如果你将你的控件放在FlowLayoutPanel中并设置以下选项:

AutoScroll = True
FlowDirection = TopDown
WrapContents = False

然后,您应该获得一个面板,随着控件的添加或删除而增长和缩小。

来源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接