手动激活/取消激活自定义控件的SnapLines

时间:2011-04-21 21:44:04

标签: c# vb.net winforms visual-studio user-controls

此时,我几乎从不想再设计具有丰富设计时支持的控件。那说......

我已经覆盖了SnapLines - 派生类中的ControlDesigner属性,以便从我的控件的子控件中手动转发各种快照线 - 文本基线(粉红色)从标签和组合框;文本插入符号从标签;组合框中的顶部,底部,左侧和右侧的线条。当控件本身在窗体上移动以及其他控件在其周围移动时,这些捕捉线会激活。

我需要的是能够告诉设计师激活快照线,然后在我进行内部移动或调整底层控件的大小时停用它们。

我的组合框可以通过我的控件设计器中OnMouseDragBeginOnMouseDragMoveOnMouseDragEnd的覆盖来调整大小。我正在寻找的神奇子弹是我可以在Begin中调用的东西,告诉设计师在End中显示捕捉线和某些东西以告诉它停止。

如果人们没有为彼此或外部控件显示对齐线,那么允许人们在设计时调整内部控件并调整它们是没用的。

与这样的东西一样,搜索起来非常困难。我在一个论坛上发现了一个帖子,有人问这个确切的问题(当然)没有回复。就是这样。

显然,当/如果它们被显示时,实际上捕捉到捕捉线的问题仍然存在。能够看到它们将是一个不错的开始。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

做你想做的事情的最好方法是创建一个Design Surface MSDN Reference

我已经使用它为我的应用程序创建自己的设计表面,以便客户可以自定义表单。

希望这有帮助,

Johan J v Rensburg