2

我不知道这种 UI 样式的正确名称是什么。在 MS Access 中,“关系”工具将 db 表显示为可以与线条链接的小可移动框。Visio 和一些音频应用程序也是如此 - 可移动的框,包含可以以有意义的方式连接在一起的文本行。

如何使用 Visual Studio 2008 和 C# 在 .NET 中创建类似的东西?我以前从未创建过自己的控件。

这是我的意思的那种东西的图像:点击例如

4

2 回答 2

1

您将需要两个主要的自定义控件:主视图表格控件

表格控件负责绘制其所有列并确保项目可以在需要时滚动。它还负责为指定的行标题提供 x/y 坐标。这样关系线可以匹配到正确的行。

视图负责接受表格对象列表(存储在自定义表格对象中),创建相同数量的表格控件并按指定顺序排列它们。它还负责在表格控件之间绘制线条。

总而言之,这不是微不足道的。您需要覆盖这两个控件的 OnPaint() 方法来完成所有这些自定义绘图。对 GDI+ 图形例程进行一些研究,找出可以使用哪些方法来绘制它。您可能最常使用这些对象/方法:

Pen
SolidBrush
LinearGradientBrush
DrawRectangle()
FillRectangle()
DrawString()
DrawImage()
DrawLine()
DrawPath()

您还需要捕获各种鼠标事件以启用控件的移动。这可以通过重写方法来完成,例如OnMouseDownOnMouseMove

祝你好运。

于 2009-05-25T08:43:33.020 回答
0

您尝试绘制的图表是 ERD 或数据库设计。您可能还在寻找的是类图。

您正在尝试做的事情非常复杂。

以下是一些可能有帮助的链接。这些都是做图表的开源类型 UML 工具。

http://imar.spaanjaars.com/501/automatically-generating-class-diagrams-from-a-type-using-reflection

http://www.codebydesign.com/

http://sourceforge.net/projects/use-case-maker/

http://projects.gnome.org/dia/

http://www.monouml.org/doku.php?id=documentation

于 2011-05-27T14:39:18.127 回答