在C#中创建运行时可编辑连接器控件?

时间:2009-05-15 15:46:29

标签: c#

我正在C#中开发运行时可编辑控件,其中控件将在运行时添加,但现在我无法创建连接器控件。

我指的连接器就像我们通常进入工作流程或连接两个组件的Visio一样。

1 个答案:

答案 0 :(得分:0)

不幸的是,创建一个独立的“连接器”控件很困难。它将涉及使用transparent background创建一个控件。

然后你将处理绘制样式连接器所需的渲染代码(但是你想要这样做,一条简单的线或更复杂的东西)。如果您不确定如何绘制,请查看Graphics课程以及它如何与Bitmap课程一起使用。

您还可以在连接器的末端渲染小方块,以用作手柄以拖动连接器(连接到其他组件)。您必须进行命中测试以确定用户鼠标按下哪个方格。当他们将鼠标放在另一个组件上时,再次点击测试(以存储连接器“连接”到哪个组件)。

您还可以添加在线上选择其他点的功能,该线将线分成两个或多个线段。这将允许您建立不是简单直线的连接。这将再次涉及线路上的命中测试,并将使鼠标代码更加复杂。

您需要通过修改其z顺序属性并添加连接器和组件来确保每个连接器控件都在每个组件控件之上。


另一种选择是创建一个包含组件的容器控件。容器控件将对所有鼠标事件做出反应,并简单地将连接绘制到自身上(当然它也必须存储连接信息)。这种方法不同,因为连接器不是控件,它们只是直接在容器上绘制。


最后,如果您正在寻找一种自动布局组件的方法,here是一个起点。