2

コンボ ボックスの VB.NET では、オートコンプリート モードを「SuggestAppend」に設定し、オートコンプリート ソースを「ListItems」に設定しました。期待どおりに動作します。しかし、autosuggest ドロップダウン ボックスの幅は、コンボ ボックスの幅と同じではないため、奇妙に見えます。

値のドロップダウン幅プロパティを変更しようとしましたが、通常のドロップダウン ボックス (コンボ ボックスの下向き矢印をクリックした後に表示される) の値が変更され、autosuggest ドロップダウン ボックスは変更されません。

autosuggest ドロップダウン ボックスをコンボボックスの幅と同じ幅にするには、どのコードまたはプロパティを設定する必要があるのでしょうか? この画像は、autosuggest ドロップダウン ボックスの幅とコンボ ボックスの幅の違いを示しています。

この画像は通常のドロップダウンボックスを示しており、その幅はコンボボックスのドロップダウン幅プロパティによって制御されます

4

1 に答える 1

2

よく見ると、幅がユーザーによってカスタマイズ可能であることがわかります。右下隅のサイズ変更グリップは、死んだ景品です。

     フリーハンドの円で示されるサイズ変更グリップ

幅を指定する組み込みオプションはありません。これは仕様によるものです。内部では、ComboBoxコントロールは実際に関数を使用してこのSHAutoCompleteAPI機能を実装します。自動提案ボックスは常に、ユーザーが最後に選択した幅で表示されます。コンボ ボックスの幅よりもはるかに大きく表示することも簡単にできます。

これが本当に必要な場合は、ComboBoxコントロールをサブクラス化し、Windows API から一連の関数を P/Invoke して、自動提案ボックス ウィンドウのハンドルを取得し、サイズを変更することができます。しかし、コードは醜く、苦労する価値はほとんどありません。サンプル コードは、このスレッドで入手できます。

于 2011-02-06T09:18:06.803 に答える