我有2个 ComboBoxes ,里面有数据。当我在第一个组合框中写下项目名称的一些字母时,我按Tab键,焦点移动到下一个控件,但显示的项目与按Tab键之前的项目不同。在第二组合框中,数据与第一个中的选定项目相关,但检索到的数据基于选项卡之前选择的项目(未显示)。 我的问题是:为什么会这样?如何解决这个问题?
答案 0 :(得分:1)
请尝试将组合框DropDownStyle设置为DropDownList而不是DropDown。我希望这可以解决你的问题。
如果这不是您要搜索的内容,请尝试以下内容:
WPF ComboBox selection change after switching tabs http://www.telerik.com/forums/combobox-value-changes
答案 1 :(得分:0)
我知道这很老,但这是我发现与我的情况相符的唯一问题,并且找到了一个令我满意的解决方案。
实际上发生的是,在Winforms应用程序ComboBox中,Tab键围绕最终确定选择,仅移至下一个控件。因此,您的ComboBox最终被扔回到选择列表中似乎是随机项目的位置。这里的预期流程是找到您的项目,单击它或按Enter,然后按Tab。因此,我通过在拥有ComboBox的窗体上重写ProcessCmdKey来解决此问题,只要放下ComboBox即可强制Tab键表现为Enter。
这是我所定下的一个例子:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (this.youComboBox.DroppedDown && keyData == Keys.Tab)
{
SendKeys.Send("{ENTER}");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}