我在组合框中有自动完成选项的小问题。一切工作正确的,但我想工作它指出错误:)C中的组合框和自动完成#
当我开始在组合框中键入,autusuggest工作我喜欢的方式:
但是,当我第一次打开组合框,和然后开始打字我得到类似的东西:
更重要的是我无法从自动提示组合框挑项目,只能从下面这个列表。
AutocompleteMode是SuggestAppend
我想有自动提示喜欢上了第一张照片,并在如画2的情况下,此第一框列表应该得到某种封闭..
我在组合框中有自动完成选项的小问题。一切工作正确的,但我想工作它指出错误:)C中的组合框和自动完成#
当我开始在组合框中键入,autusuggest工作我喜欢的方式:
但是,当我第一次打开组合框,和然后开始打字我得到类似的东西:
更重要的是我无法从自动提示组合框挑项目,只能从下面这个列表。
AutocompleteMode是SuggestAppend
我想有自动提示喜欢上了第一张照片,并在如画2的情况下,此第一框列表应该得到某种封闭..
我有同样的问题,解决这样说:
private void comboBox_DropDown(object sender, EventArgs e)
{
ComboBox cbo = (ComboBox)sender;
cbo.PreviewKeyDown += new PreviewKeyDownEventHandler(comboBox_PreviewKeyDown);
}
private void comboBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
ComboBox cbo = (ComboBox)sender;
cbo.PreviewKeyDown -= comboBox_PreviewKeyDown;
if (cbo.DroppedDown) cbo.Focus();
}
一旦在DropDown
用户点击按钮PreviewKeyDown
事件附加到ComboBox
。当用户开始输入时,触发新添加的事件。在这种情况下,我们检查ComboBox
是否为DroppedDown
,如果是,请关注ComboBox
。在ComboBox
重点DropDown
消失,就是这样。
你尝试其他AutoCompleteMode
的可能值为Append
,None
和Suggest
?我认为你正在寻找的是Suggest
而不是AppendSuggest
。
这里是一些downloadable sample code说明不同的模式,如果你需要它。
我试过了。追加是显示其余的值,并建议这是新的组合框窗口。我想用推荐模式来创建这个新的组合框。但是,这个第一个名单应该关闭.. – Elfoc 2011-06-05 14:59:39
如何使用DropDown和DropDownClosed事件来禁用或更改自动完成模式?
我有完全相同的问题。 我尝试了DropDown和DropDownClosed事件来将AutoCompleteMode属性设置为none并提示。 在这种情况下,使用鼠标选择项目后,SelectedIndexChanged事件不会被触发。 我在SelectedIndexChanged事件中使用了SelectedValue属性,此属性在DropDownClosed事件触发时已经更改。 在我的情况下,我只是从DropDownClosed事件中调用SelectedIndexChanged方法来解决问题。
我还发现默认的UI实现让人分心,因为两个下拉菜单为鼠标控制而战。
想要在显示自动填充建议时隐藏下拉列表。在显示自动填充建议之前,组合框会显示一条窗口消息。为了响应此消息,我选择了折叠下拉列表。它需要一个很小的组合框覆盖来达到这个目的:
Public Class Combobox2
Inherits ComboBox
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = 135 AndAlso DroppedDown Then 'WM_GETDLGCODE
DroppedDown = False
End If
MyBase.WndProc(m)
End Sub
End Class
在ComboBox KeyDown上实现事件。它应该看起来像这样。
void cmbExample_KeyDown(object sender, KeyEventArgs e)
{
if ((sender as ComboBox).DroppedDown)
(sender as ComboBox).DroppedDown = false;
}
void cmbExample_KeyDown(object sender, KeyEventArgs e)
{
cmbExample.DroppedDown = false;
}
这工作完美! – 2014-10-23 19:42:25