사용자 지정 논리를 사용하여 C# 자동 완성에서 접두사 전용 검색 제한 극복
내장된 C# 자동 완성 기능의 한계에도 불구하고 가능합니다. 문자열의 일부를 기반으로 결과를 검색할 수 있는 사용자 지정 자동 완성 솔루션을 구현합니다. 이는 불완전하거나 부분적인 정보가 입력으로 제공되는 경우 특히 유용합니다.
사용자 정의 자동 완성 기술
C#의 표준 자동 완성 기능은 접두사 검색 모드에서만 작동합니다. 입력한 텍스트로 시작하는 일치 항목만 찾을 수 있습니다. 이를 극복하기 위해 OnTextChanged와 같은 이벤트를 재정의하여 자체 자동 완성 논리를 구현할 수 있습니다.
구현 예
사용자 정의 자동 완성을 구현하는 효과적인 방법은 ListBox를 사용하는 것입니다. 잠재적인 일치 항목을 표시합니다. 수정된 코드 조각은 다음과 같습니다.
// Initialize list box listBox1.Visible = false; listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged; listBox1.LostFocus += listBox1_LostFocus; // Handle text changes in the text box void textBox1_TextChanged(object sender, System.EventArgs e) { listBox1.Items.Clear(); if (textBox1.Text.Length == 0) { hideResults(); return; } foreach (String s in textBox1.AutoCompleteCustomSource) { if (s.Contains(textBox1.Text)) { listBox1.Items.Add(s); listBox1.Visible = true; } } } // Hide the list box on selection void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) { textBox1.Text = listBox1.Items[listBox1.SelectedIndex].ToString(); hideResults(); } // Hide the list box when it loses focus void listBox1_LostFocus(object sender, System.EventArgs e) { hideResults(); } // Hide the list box void hideResults() { listBox1.Visible = false; }
개선 사항
예제에 제공된 사용자 정의 자동 완성 솔루션은 다음과 같은 기능을 추가하여 더욱 향상될 수 있습니다.
위 내용은 접두사만 일치하는 것 외에 C#에서 전체 문자열 검색 자동 완성을 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!