2012-05-14 5 views
-1

작은 질문이 하나 있습니다. Visual Studio의 도구 상자에는 필요한 모든 구성 요소가 있지만 툴을 직접 구현할 수 있는지 궁금합니다. 예를 들어, 목록 상자 도구. "SpeechListBox"클래스를 만들었습니다.이 클래스에서는 목록 상자에서 사용할 모든 메서드를 언급했지만 "SpeechListBoxApplication"클래스 (이 목록 상자를 사용하려는 위치)에있을 때 listbox에 my 메서드가 표시되지 않습니다 대신 내 메서드가없는 일반 목록 상자 도구가 나타납니다.목록 상자, Visual Studio 2010

내가 원하는 것은 private speechListBox1 SpeechListBox와 같은 것을 쓰는 것입니다. 어떻게 든 시각적 양식을 도구 상자의 목록 상자와 혼동하지 않고 디자인 클래스에 도입합니다. 프로그램이 일반 도구 상자 유형이 아닌 모든 확장 된 방법으로이 유형의 목록 상자를 원한다는 것을 깨닫게하십시오.

우리 자신의 목록 상자를 만들거나 원래의 목록 상자 도구에 메서드를 추가 할 수있는 방법이 있습니까?

+0

제목은 질문으로 말하지 않습니다 ... –

+0

죄송합니다. 제목을 구술하는 방법을 정확히 알지 못했습니다. – Enigma365

답변

1

System.Windows.Forms.Control 인 클래스에서 SpeechListBox을 파생 시키면 프로젝트를 컴파일 할 때 Visual Studio 컨트롤 도구 상자에 나타납니다.

어떤 클래스에서 파생되는지 확실하지 않으면 몇 가지 결정을 내려야합니다. 모든 것을 직접 손으로 그리려면 Control에서 직접 파생시킵니다. 컨트롤을 작성하려면 다른 컨트롤의 복합체 인 경우 UserControl에서 파생되는 것을 고려하십시오. SpeechListBox로하려는 작업을 명시 적으로 나열하지는 않지만 ListBox 만 사용하고 사용자 지정 그리기 목록 항목을 제공하는 것이 좋습니다. 클래스를 ListBox에서 파생 시키거나 ListBox을 구성하여 목록 상자가있는 양식에서 원하는대로 할 수 있습니다.

+0

정말 고마워요! 나는 꽤 오랫동안 이것에 붙어 있었고, 나는 지금 그것을 가지고 있다고 생각한다. – Enigma365

1

코드가 별도의 프로젝트에 있습니까? 그런 다음 해당 프로젝트를 솔루션 탐색기의 SpeechListBoxApplication 프로젝트 참조에 추가해야합니다.

그렇지 않으면 상속 된 컨트롤 (public class SpeechListBox : ListBox)이 GUI 디자이너의 도구 상자에서 일반 섹션이나 프로젝트 뒤에 레이블이 지정된 섹션에 나타나야합니다.

+0

안녕하세요! 그렇습니다, 그것은 별도의 프로젝트에 있었지만 그 부분을 다루었습니다. 그래도 일을 더 분명하게 해주셔서 감사합니다. 정말 도움이되었습니다. – Enigma365