为什么自动建议下拉框的宽度与组合框的宽度不匹配?

时间:2011-02-06 09:12:11

标签: .net vb.net winforms combobox autosuggest

在用于组合框的VB.NET中,我将自动完成模式设置为“SuggestAppend”并将自动完成源设置为“ListItems”。它按预期工作。但是autosuggest下拉框的宽度与组合框的宽度不同,所以看起来很奇怪。

我尝试更改值下拉宽度属性,但它更改了普通下拉框的值(单击组合框上的向下箭头后看到),而不是自动提示下拉框。

那么需要设置什么代码或属性才能使autosuggest下拉框的宽度与组合框宽度的宽度相同? This image shows difference between the width of autosuggest dropdownbox and that of combobox width

This images show normal dropdown box , width of which is controlled by dropdown width propery of combobox

1 个答案:

答案 0 :(得分:2)

仔细观察,您会注意到它的宽度是用户可自定义的。右下角的尺寸调整手柄是死的赠品:

resizing grip indicated with a freehand circle

没有内置选项来指定宽度,这是设计的。在幕后,ComboBox控件实际上使用SHAutoCompleteAPI function来实现此功能。自动建议框始终显示用户选择的最后宽度。它可以很容易地显示出比组合框的宽度更大的

如果你真的想这样做,你可以继承ComboBox控件,P /从Windows API调用一堆函数,并获得自动建议框窗口的句柄,然后你可以调整。但代码很丑陋,而且几乎不值得麻烦。示例代码可用on this thread