MESCIUS SPREAD for Windows Forms 17.0J
シート上の子コントロールの配置

シート上にコントロールを配置し、ユーザーが操作できるようにできます。.NET FrameworkのControlクラスから派生したコントロールは、IEmbeddedControlSupportインタフェースを実装し、インタフェースのメンバに、次の設定を行うことでシート上に配置できるようになります。

メンバ 設定
ActivationPolicyプロパティ ユーザーがオブジェクトをアクティブ化できるかを設定します
CanMoveプロパティ ユーザーがオブジェクトを移動できるかを設定します
CanSizeプロパティ ユーザーがオブジェクトをサイズ変更できるかを設定します
ControlPaintメソッド 非アクティブなオブジェクトの表現方法を実装します(この処理は、セルのPaintメソッドに似ています)

コントロールをシートに配置するには、FpSpreadクラスまたはSheetViewクラスのAddControlメソッドを使用します。

子コントロールはアクティブセルに従ってシート上に配置されますが、このセルに固定されるわけではありません。いったん配置された子コントロールは絶対位置を獲得します。この位置は、シートの変更、またはセルの移動や削除によって変更されません。子コントロールは、コントロールレイヤという独立したレイヤ上に配置されます。これはデータ領域(データを保持するセルが表示される領域)から独立しており、描画レイヤ(シェイプや他のグラフィック要素が表示される領域)からも独立しています(下図参照)。

シート上の各レイヤ

FpSpreadクラスのAllowChildControlDesignプロパティを使用すると、ユーザーの子コントロールに対する設計操作を有効にするかを設定できます。有効に設定すると、子コントロールは、ユーザーのクリックなどの操作によりフォーカスを受け取り、ユーザーが移動やサイズ変更を行うためのマウスポインタを表示します。また、子コントロールは、強調罫線によってフォーカスを保持していることを示します。無効に設定すると、子コントロールは、ユーザーによるクリック(またはIEmbeddedControlSupportActivationPolicyプロパティで設定された操作)に応答するのみのコントロールとなります。

任意の数の子コントロールをシートに配置できます。シート上のすべてのシェイプに対するシェイプコンテナと同様、シートには子コントロールのコンテナが存在します。各コントロールを列挙し、コントロールのインタフェースの任意のプロパティをオーバーライドできます。イベントの設定、およびイベントハンドラの処理も可能です。

子コントロールレイヤは実行時にのみ使用できます。 この機能は、スタンドアロンのSPREADデザイナでは使用できません。

埋め込んだ子コントロールがアプリケーション内で適切に表示されるようにするには、基になるコントロールのクラスで何らかのカスタマイズが必要な場合があります。

子コントロールレイヤのインタフェース、および列挙体については、以下を参照してください。

シート上の子コントロールレイヤのメソッドについては、以下を参照してください。

コントロールの子コントロールレイヤのメンバについては、以下を参照してください。

参照

 

 


© MESCIUS inc. All rights reserved.