이와 같은 문제를 해결할 수있는 방법은 많이 있습니다.
첫 번째 시도는 Dictionary<string, List<string>>
을 만들고 모든 키를 Combobox에 추가해야합니다. 그들은 당신의 "dbo.abc"이고 그 값은 해당 레코드입니다.
Combobox 인덱스가 변경된 경우 목록 상자를 지우고 해당 목록의 모든 항목을 목록에 추가합니다.
모든 항목에 대해 "모든 목록"항목을 추가 할 수 있습니다. 그런 다음 키가 사전에 있는지 확인하기 위해 테스트에서 존재하지 않는 경우 foreach
에 yourDictionary.Values
을 입력하고 모두 목록에 추가하십시오.
아마도 그렇게 할 것입니다. 그러나 거기에 많은 사람들이 어쩌면 당신은 당신의 예에서이 :)
편집과 같은 사소한 질문을하기 전에 C# 언어를 개선하기 위해 시작해야합니다 (목록 상자를 상정하는 것은 cmbList입니다) :
private Dictionary<string, List<string>> _items;
private void cmbUsers_SelectedIndexChanged(object sender, EventArgs e)
{
var cmbText = cmbUsers.SelectedText;
cmbList.Items.Clear();
if (_items.ContainsKey(cmbText)
{
cmbList.Items.AddRange(_items[cmbList]);
}
else // default : show all items
{
foreach (var val in _items.Values)
{
cmbList.Items.AddRange(val);
}
}
}
사용 콤보 텍스트 이벤트를 변경 – Astro
불행히도 아니오, 아무런 의문의 여지가 없으므로 이해할 수 없습니다 ... 한 줄의 코드도 작성 했습니까? 또는 자습서를 요청하고 있습니까? – Leo
예 .. 그리고 물건 코드를 써주세요 .. – Astro