0
TextBox
클래스의 AutoCompleteStringCollection
클래스에 대한 검색 기능을 변경하려면 어떻게해야합니까? 바로 지금, 기본 검색 기능에서 내 제안의 시작 문자가 사용자 입력의 문자와 일치합니까? 내 제안은 사용자 정의 소스에서 왔습니다. -AutoCompleteStringCollection에 대한 사용자 정의 검색
TextBox
클래스의 AutoCompleteStringCollection
클래스에 대한 검색 기능을 변경하려면 어떻게해야합니까? 바로 지금, 기본 검색 기능에서 내 제안의 시작 문자가 사용자 입력의 문자와 일치합니까? 내 제안은 사용자 정의 소스에서 왔습니다. -AutoCompleteStringCollection에 대한 사용자 정의 검색
당신은 당신의 자신의 자동 완성 검색을 할 수 TextChange 를 사용하는 것은 여기에 대답 : C# winforms combobox dynamic autocomplete
코드 :
string[] data = new string[] {
"Absecon","Abstracta","Abundantia","Academia","Acadiau","Acamas",
"Ackerman","Ackley","Ackworth","Acomita","Aconcagua","Acton","Acushnet",
"Acworth","Ada","Ada","Adair","Adairs","Adair","Adak","Adalberta","Adamkrafft",
"Adams"
};
public Form1()
{
InitializeComponent();
}
private void comboBox1_TextChanged(object sender, EventArgs e)
{
HandleTextChanged();
}
private void HandleTextChanged()
{
var txt = comboBox1.Text;
var list = from d in data
where d.ToUpper().StartsWith(comboBox1.Text.ToUpper())
select d;
if (list.Count() > 0)
{
comboBox1.DataSource = list.ToList();
//comboBox1.SelectedIndex = 0;
var sText = comboBox1.Items[0].ToString();
comboBox1.SelectionStart = txt.Length;
comboBox1.SelectionLength = sText.Length - txt.Length;
comboBox1.DroppedDown = true;
return;
}
else
{
comboBox1.DroppedDown = false;
comboBox1.SelectionStart = txt.Length;
}
}
private void comboBox1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Back)
{
int sStart = comboBox1.SelectionStart;
if (sStart > 0)
{
sStart--;
if (sStart == 0)
{
comboBox1.Text = "";
}
else
{
comboBox1.Text = comboBox1.Text.Substring(0, sStart);
}
}
e.Handled = true;
}
}
프리젠 테이션 기술에 태그를하시기 바랍니다. 우리는 당신이 어떤 유형의 "TextBox"를 참조하는지 알지 못합니다. –
@ rory.ap. 미안합니다. –
찾고있는 검색 기능의 종류를 지정하지 않았습니다. – LarsTech