El Tabelle のクラスを継承して使うことはできますか?

文書番号 : 11210     文書種別 : 使用方法     最終更新日 : 2003/11/10
文書を印刷する
対象製品
El Tabelle for .NET
詳細
El Tabelle のクラスのほとんどは、そのまま使用される前提で開発されてます。このため、ほとんどのクラスにおいて継承は可能でも、既存のメンバをオーバーライドすることはできません。

継承して使用できるクラスにはオーナー描画で使用する GridEditor クラスがあります。通常の使用においては、このクラス以外で継承を行う必要はありません。

WorkBook クラスや Sheet クラスを継承して使用する場合、LicenseProviderAttribute 属性を設定します。

[Visual Basic]
'SheetEx.cls
Imports System.ComponentModel
Imports GrapeCity.Views.ElTabelle

<LicenseProviderAttribute(GetType(LicFileLicenseProvider))> _
Public Class SheetEx
  Inherits GrapeCity.Win.ElTabelle.Sheet

[C#]
//SheetEx.cs
using System.ComponentModel;
using GrapeCity.Win.ElTabelle;

[LicenseProviderAttribute(typeof(LicFileLicenseProvider))]
public class SheetEx : GrapeCity.Win.ElTabelle.Sheet

なお、これとは別に WorkBook や Sheet をプロジェクトに動的に追加した場合には、プロジェクトの licenses.licx に次の情報を追加する必要があります。これは静的(設計時にコントロールを配置)した場合には自動で追加されるものです。

GrapeCity.Win.ElTabelle.Sheet, GrapeCity.Win.ElTabelle.v12, Version=1.2.2003.630, Culture=neutral, PublicKeyToken=a26afe6ac959b1f8
GrapeCity.Win.ElTabelle.WorkBook, GrapeCity.Win.ElTabelle.v12, Version=1.2.2003.630, Culture=neutral, PublicKeyToken=a26afe6ac959b1f8
継承した WorkBook や Sheet に対しても El Tabelle デザイナを実行することはできますが、シートのリソースを保持するプロパティ(Sheet.Data)にデザイナとプロジェクトがアクセス可能であることが前提です。このいずれかが不可能な場合、デザイナの実行時にエラーが発生するか、またはデザイナの設定が設計時のみ適用されます。

継承は大変便利な機能です。しかし、El Tabelle は WorkBook と Sheet の2つのコントロールから成り、かつ El Tabelle デザイナと連携することから、継承したクラスを使用する開発者は常に Sheet クラスや WorkBook クラスを意識しなくてはなりません。
一般的な再利用やカスタマイズの用途では、継承よりも UserControl によるコンポーネント化のほうが生産性や柔軟性の面で効率が良い場合もあります。
キーワード
機能・仕様

この文書は、以前は次のFAQ IDで公開されていました : 3209