0

Visual Studio のプロパティ グリッドに似た Windows フォーム ベースのカスタム コントロールを実装したいと考えています。このため、はるかに単純ですが。理想的には、クライアント指定の UITypeEditor 実装を呼び出すことによって、プロパティ グリッドでインプレース編集をトリガーするために使用される IWindowsFormsEditorService インターフェイスの動作を複製したいと考えています。

単純な例として、セル内のシミュレートされた ComboBox (またはドロップダウン リスト) を介して値の編集を実装するだけで済みます。Visual Studio が行う方法には、実際の ComboBox コントロールが含まれます。むしろ、Visual Studio はセルの右側に小さなドロップダウン ボタンを表示します。これを押すと、単純な ListBox コントロールの表示と操作がトリガーされ、ComboBox のドロップダウンをシミュレートするように配置されます。

これを実現するには、編集中に独自のモーダル メッセージ ループを実装する必要があることを理解しています。ただし、このメッセージ ループを配置する方法と場所を理解するのに苦労しています。また、カスタム コントロールの境界を越えてドロップダウン リストが拡張されるという問題もあります。

私は COM と C++ に精通していますが、純粋な C# ベースのソリューションを実装したいと考えています。

カスタム グリッドのようなコントロールで単純なシミュレートされた CombBox In-Place 編集を実装するには、どのような方法がよいでしょうか?

4

1 に答える 1

0

モーダル編集エクスペリエンス (リスト ボックスを含む) 用に別のフォームを作成し、 を呼び出して表示する必要がありShowDialog()ます。

このShowDialog()メソッドは、モーダル メッセージ ループになります。
セパレートフォームなので、親コントロールのサイズに問題はありません。

于 2010-08-06T06:14:00.423 に答える