2014-01-11 2 views
0

좋은 하루,맞춤 컨트롤 텍스트 상자 자동 완성

텍스트 상자에 자동 완성 기능에 문제가 있습니다. public partial class CustomTextBox : UserControl

그런 다음이 컨트롤에 내가 텍스트 상자 추가 : 나는 사용자 지정 컨트롤이 나는 형태로 텍스트 상자를 추가하고 내 컨트롤의 속성에 AutoCompleteStringCollection을 설정하면 이제

public CustomTextBox() 
    { 
     InitializeComponent(); 

     TextBox textBox = new TextBox(); 

     textBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     textBox.AutoCompleteSource = AutoCompleteSource.CustomSource; 
     textBox.AutoCompleteCustomSource = aclist; 

     textBox.Multiline = false; 

     textBox.BorderStyle = BorderStyle.None; 

     this.Controls.Add(textBox); 

    } 

을하는 I 사용자 정의 자동 완성 목록에 사용하면 런타임에 텍스트 상자의 자동 완성이 작동하지 않습니다.

public CustomTextBox() 
    { 
     InitializeComponent(); 

     TextBox textBox = new TextBox(); 

     textBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     textBox.AutoCompleteSource = AutoCompleteSource.CustomSource; 

     AutoCompleteStringCollection list = new AutoCompleteStringCollection(); 
     list.Add("Test"); 

     textBox.AutoCompleteCustomSource = list; 

     textBox.Multiline = false; 

     textBox.BorderStyle = BorderStyle.None; 

     this.Controls.Add(textBox); 

    } 

하지 난 아무것도 누락 확실 : 나는 같은 장소에서 테스트 AutoCompleteStringCollection을 추가하는 경우

는하지만 작동 제어를 만들었습니다. 질문에 대답하는 데 도움이되는 코드가 더 필요하면 알려주십시오.

Windows 양식을 사용하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.

P.S 글꼴 크기를 변경하거나 여러 줄 텍스트 상자로 변경하지 않고 텍스트 상자 높이를 변경할 수 없기 때문에 TextBox에서 상속하지 않는 이유가 있습니다.

감사합니다.

답변

0

누군가가 궁금 해서요. Custom TextBox에 autocompletecustomsource를 할당 한 경우, 공용 CustomTextBox() {...}에서 꺼내어 그것을 펀트 (예 : 컨트롤을 페인트하는 메서드)하면 완벽하게 작동합니다. InitializeComponent() 바로 아래 목록은 여전히 ​​빈 것처럼 보이지만 페인트 메서드에서만 값이 할당됩니다

관련 문제