![]() |
1
25
我有一个类似的需求,我像这样解决了它:
这样,它实际上为子控件创建了一个临时的子设计器,以便找出“真正的”基线对齐线在哪里。 这在测试中似乎是合理的,但是如果性能成为一个问题(并且如果内部文本框不移动),那么大部分代码可以提取到初始化方法中。 这还假定文本框是UserControl的直接子级。如果有其他布局影响控件的方式,那么偏移量计算将变得更加复杂。 |
![]() |
2
42
作为对米拉尔答案的更新……以下是一些“缺失的步骤”,对于正在寻找如何做到这一点的新员工来说。:)上面的C代码几乎可以“插入”了,除了更改一些值以引用将要修改的用户控件之外。
可能需要的参考:
需要使用:
在用户控件上,需要以下属性:
然后您需要一个“designer”类,该类将覆盖Snaplines:
|
![]() |
3
7
感谢所有的帮助。这是一个很难接受的问题。在每个用户控件中都有一个私有子类的想法不是很好理解。 我想出了这个基础班来帮忙。
接下来,从此基础派生用户控件:
再次感谢您发布此消息。 |
![]() |
4
6
VB.NET版本:
|
![]() |
5
2
你走对了。您需要重写设计程序中的snaplines属性,并执行如下操作:
在本例中,用户控件包含一个文本框。代码添加了一个新的Snapline,它表示文本框的基线。重要的是要正确计算偏移量。 |