实现MS Access样式“关系”GUI

时间:2009-04-21 20:28:28

标签: c# .net visual-studio-2008 user-interface gui-designer

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

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

这是我所说的那种形象的图像:Click for example

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

您还需要捕获各种鼠标事件以启用移动控件。这可以通过覆盖OnMouseDownOnMouseMove等方法来完成。

祝你好运。

答案 1 :(得分: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