2009-11-10 7 views
7

텍스트 상자의 텍스트를 설정하기위한 문자열 속성이있는 Windows Form 사용자 정의 컨트롤이 있습니다. 이 문자열 수 멀티 라인 수 있습니다.속성 창에서 여러 줄 문자열 속성 허용

텍스트 속성이있는 일부 컨트롤에서 한 줄 속성 텍스트 상자에 입력해야하는 대신 여러 줄을 입력 할 수있는 작은 팝업이 나타납니다. 사실 Windows Forms Textbox 컨트롤을 사용하면 Text 속성에서이를 허용합니다.

내가 디자인 한 속성의 속성 창에서이 기능을 사용하려면 어떻게해야합니까?

[EditorAttribute(typeof(MultilineStringEditor), 
       typeof(System.Drawing.Design.UITypeEditor))] 
public string Instructions 
{ 
    get 
    { 
     return TextBox1.Text; 
    } 
    set 
    { 
     TextBox1.Text = value; 
    } 
} 

다음

하지 실제 내 응용 프로그램 코드, 그러나 그러한 속성이

public string Instructions 
{ 
    get 
    { 
     return TextBox1.Text; 
    } 
    set 
    { 
     TextBox1.Text = value; 
    } 
} 

답변

14

을 정의 할 수있는 방법의 예 당신은 MultilineStringEditor으로 EditorAttribute를 사용할 수있다 System.Design에 대한 참조를 추가하지 않고 전체 프레임 워크가 필요 없도록 다음과 같이 속성을 쓸 수도 있습니다.

[EditorAttribute(
    "System.ComponentModel.Design.MultilineStringEditor, System.Design", 
    "System.Drawing.Design.UITypeEditor")] 

이제 프레임 워크를 클라이언트 프로파일과 전체 프로파일로 분할하는 것을 중단했지만 문제가되지는 않습니다.

+1

죄송합니다. 참고 문헌이 누락되었습니다. 내 Intellisense에서 MiltilineStringEditor를 옵션으로 사용하지 않습니다. System.ComponentModel.Design.MultilineStringEditor를 사용할 때도 마찬가지입니다. 그리고 컴파일되지 않습니다. 만약 내가 작동 시키려고한다면, 나는 올바른 답을 얻을 수있는 신용을 줄 것이다 ... – David

+1

당신은'System.Design.dll'을 참고해야만한다. – manji

+1

완벽하다. 나는 그것을 혼자서 발견했고 단지 코멘트로 게시하기 위해 다시 돌아 왔습니다. 고맙습니다. 나는이 일을 하루 정도 열어두고 있기 때문에 내 자신 옆에있는 대답에 대해 투표 할 수 있기를 바랍니다. 이것은 꽤 모호한 지식이었고, 당신이 보람을 느껴야한다고 생각합니다. – David