【发布时间】:2022-01-31 22:58:34
【问题描述】:
目标 : 无论用户是否通过单击、按回车键、按 Tab 键自动完成等方式选择了值,都从 ComboBox 获取所选值。
我有一个dictionary<string, string[]>,其键为:ID 和值:版本
我有 2 个组合框,比如 CB1(包含键\ID)和 CB2:
当用户在 CB1 中选择一个 ID(key) 时,对应的 value(s) 会填充到 CB2。
为此,我使用了CB1_SelectionChangeCommited、CB1_Leave、CB1_KeyPressed 方法。后者无法正常工作,因为它不会检测到任何按键。其代码如下
private void ComboBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (comboBox3.Items.Contains($"{comboBox3.Text}"))
{
comboBox4.Items.Clear();
comboBox4.Text = string.Empty;
foreach (string version in dependenciesData.dependencyDic[Convert.ToString(comboBox3.Text)])
{
comboBox4.Items.Add(version);
}
comboBox4.SelectedIndex = 0;
}
}
}
问题:
- 如何修复CB_Keypress 方法
或
- 有没有其他方法可以做我想做的事?
【问题讨论】:
-
请勿将代码发布为图片。请仅将其作为文本包含。
标签: c# visual-studio combobox