PowerTools SPREAD for Windows Forms 8.0J > 開発者ガイド > シート > シート上の子コントロールの配置 |
シート上にコントロールを配置し、ユーザーが操作できるようにできます。.NET FrameworkのControlクラスから派生したコントロールは、IEmbeddedControlSupportインタフェースを実装し、インタフェースのメンバに、次の設定を行うことでシート上に配置できるようになります。
メンバ | 設定 |
---|---|
ActivationPolicyプロパティ | ユーザーがオブジェクトをアクティブ化できるかを設定します |
CanMoveプロパティ | ユーザーがオブジェクトを移動できるかを設定します |
CanSizeプロパティ | ユーザーがオブジェクトをサイズ変更できるかを設定します |
ControlPaintメソッド | 非アクティブなオブジェクトの表現方法を実装します(この処理は、セルのPaintメソッドに似ています) |
コントロールをシートに配置するには、FpSpreadクラスまたはSheetViewクラスのAddControlメソッドを使用します。
子コントロールはアクティブセルに従ってシート上に配置されますが、このセルに固定されるわけではありません。いったん配置された子コントロールは絶対位置を獲得します。この位置は、シートの変更、またはセルの移動や削除によって変更されません。子コントロールは、コントロールレイヤという独立したレイヤ上に配置されます。これはデータ領域(データを保持するセルが表示される領域)から独立しており、描画レイヤ(シェイプや他のグラフィック要素が表示される領域)からも独立しています(下図参照)。
FpSpreadクラスのAllowChildControlDesignプロパティを使用すると、ユーザーの子コントロールに対する設計操作を有効にするかを設定できます。有効に設定すると、子コントロールは、ユーザーのクリックなどの操作によりフォーカスを受け取り、ユーザーが移動やサイズ変更を行うためのマウスポインタを表示します。また、子コントロールは、強調罫線によってフォーカスを保持していることを示します。無効に設定すると、子コントロールは、ユーザーによるクリック(またはIEmbeddedControlSupportのActivationPolicyプロパティで設定された操作)に応答するのみのコントロールとなります。
任意の数の子コントロールをシートに配置できます。シート上のすべてのシェイプに対するシェイプコンテナと同様、シートには子コントロールのコンテナが存在します。各コントロールを列挙し、コントロールのインタフェースの任意のプロパティをオーバーライドできます。イベントの設定、およびイベントハンドラの処理も可能です。
子コントロールレイヤは実行時にのみ使用できます。 この機能は、スタンドアロンのSPREADデザイナでは使用できません。
埋め込んだ子コントロールがアプリケーション内で適切に表示されるようにするには、基になるコントロールのクラスで何らかのカスタマイズが必要な場合があります。
子コントロールレイヤのインタフェース、および列挙体については、以下を参照してください。
シート上の子コントロールレイヤのメソッドについては、以下を参照してください。
コントロールの子コントロールレイヤのメンバについては、以下を参照してください。