2009-04-21 4 views
2

이 UI 스타일의 올바른 이름은 무엇인지 알 수 없습니다. MS Access에서 '관계'도구는 라인과 연결할 수있는 거의 움직이지 않는 상자로 db 테이블을 표시합니다. Visio 및 몇 가지 오디오 응용 프로그램과 동일합니다. 이동 가능한 상자로, 의미있는 방식으로 함께 결합 할 수있는 텍스트 줄이 들어 있습니다.MS Access 스타일 'relationships'구현 GUI

Visual Studio 2008 및 C#을 사용하여 .NET에서 비슷한 것을 어떻게 만들 수 있습니까? 나는 결코 전에 나의 통제를 만들지 않았다.

여기 물건의 종류의 이미지와 내 말은 : Click for example

+0

데이터베이스 스키마 - http://en.wikipedia.org/wiki/Database_schema –

+0

오른쪽, 그래서 어떻게 할 나는 그 종류의 d 중 하나를 만든다. 내 응용 프로그램에서 iagram? 코드를 사용하여 상자, 선 및 텍스트를 그릴 수있는 방법은 무엇입니까? – Piku

+0

일종의 UI 프레임 워크를 사용하고 싶습니다.Windows Forms를 사용하는 경우 WPF를 사용하는 경우 GDI + (System.Windows.Drawing)를 조사하는 것이 좋습니다. 실제로 그것은 실제로있을 것입니다. 이를 수행하는 한 가지 방법은 ListBox를 다시 스타일 화하는 것입니다. WPF에 대해 알게되고이 기사를 읽어 보시기 바랍니다. http://www.beacosta.com/blog/?p=40 – TimothyP

답변

1

당신은 두 가지 사용자 지정 컨트롤이 필요합니다 다음 기본보기테이블 제어을.

테이블 컨트롤은 모든 열로 그려지고 필요한 경우 항목을 스크롤 할 수 있도록합니다. 또한 지정된 행 머리글에 대해 x/y 좌표를 제공 할 책임이 있습니다. 이것은 관계 행이 올 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