2009-04-21 1 views
2

このUIスタイルの正しい名前が何であるかわかりません。 MS Accessでは、 'relationships'ツールはdbテーブルを線とリンクできる小さな可動ボックスとして表示します。 Visioやいくつかのオーディオアプリケーション(移動可能なボックス)は、意味のある方法で一緒に結合できるテキスト行を含んでいます。MS Accessスタイル 'リレーションシップ'の実装GUI

Visual Studio 2008とC#を使用して.NETで同様のことをどうすれば作成できますか?私は前に自分のコントロールを作成したことはありません。 メインビューテーブルコントロール:あなたは二つの主なカスタムコントロールをする必要がありますClick for example

+0

データベーススキーマ - http://en.wikipedia.org/wiki/Database_schema –

+0

右、ので、どのように行います私はこれらのタイプのうちの1つを作ります自分のアプリケーションでiagram? コードを使用してボックス、線、テキストを描画するにはどうすればよいですか? – Piku

+0

これは、使用したいUIフレームワークによります。Windowsフォームを使用している場合は、WPFを使用するとGDI +(System.Windows.Drawing)を調べるほうが簡単でしょう。実際には本当にそうだろう。それを行う1つの方法は、ListBoxのスタイルを変更することです。 WPFについて知り、この記事をお読みになることをお勧めします: http://www.beacosta.com/blog/?p=40 – TimothyP

答えて

1

:ここ

は私が意味するものの種類の画像です。

テーブルコントロールは、すべての列で描画し、必要に応じて項目をスクロールできるようにします。また、指定された行ヘッダーのx/y座標を提供する役割も果たします。これは、関係線が正しい行まで一致するようにするためです。

メインビューは、(カスタムテーブルオブジェクトに格納された)テーブルオブジェクトのリストを受け入れ、同じ数のテーブルコントロールを作成し、それらを指定された順序で並べ替えます。また、テーブルコントロール間の線を引きます。

全体として、これは自明ではありません。この両方のコントロールのOnPaint()メソッドをオーバーライドして、このカスタム描画をすべて実行したいと思うでしょう。 GDI +グラフィックルーチンに関するいくつかの調査を行い、これを描画するためにどのようなメソッドを使用できるか調べます。おそらく、ほとんどの場合、これらのオブジェクト/メソッドを使用しています:

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

あなたはまた、マウスイベントのすべての種類は、周りのコントロールを移動可能にするためにトラップする必要があります。これは、OnMouseDownまたはOnMouseMoveのようなメソッドをオーバーライドすることによって行うことができます。

幸運。

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