2

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

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

那么需要设置什么代码或者属性来让自动提示下拉框的宽度和组合框的宽度一样呢? 此图显示了自动建议下拉框的宽度和组合框宽度之间的差异

此图像显示正常的下拉框,其宽度由组合框的下拉宽度属性控制

4

1 回答 1

2

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

     用手绘圆圈表示的调整夹点大小

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

如果你真的想这样做,你可以子类化ComboBox控件,P/Invoke Windows API 中的一堆函数,并获得自动建议框窗口的句柄,然后你可以调整它的大小。但是代码很丑,而且不值得麻烦。此线程上提供了示例代码。

于 2011-02-06T09:18:06.803 回答