Combobox のデータ バインディング プロセスもパフォーマンスを低下させると思います。可能であれば、コンボボックスの代わりに他のコントロールを使用してビッグデータを処理する必要があります。
ユーザーはどの薬を選択したいかを知っている必要があると思います。そのため、薬の名前の一部を検索ボックスに入れることができます。これは単なる選択です。ユーザーがリストで検索する単語を入力すると、 AutoCompleteで TextBox (私のサンプル コードではtxtMedicinesという名前) を使用してバインド データを検索できます。
これはサンプルコードです
private void InitializeMedicinesAutoComplete()
{
var searchMed = Lookup.Medicines
.Where(d => d.DosageForm.Equals(cmbType.SelectedValue.ToString())).ToList();
var source = new AutoCompleteStringCollection();
foreach (var med in searchMed)
{
// **DisplayMemberText mean any field that you want to display in searching list
source.Add(med.DisplayMemberText);
}
txtMedicines.AutoCompleteMode = AutoCompleteMode.Suggest;
txtMedicines.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtMedicines.AutoCompleteCustomSource = source;
}
private void cmbType_SelectedIndexChanged(object sender, EventArgs e)
{
InitializeMedicinesAutoComplete();
}
これが役立つことを願っています。