PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > 編集、検証、選択、フォーカス > フォーカスとヒットテスト > フォーカスインジケータ |
ユーザーはフォーカス長方形によって、選択範囲およびアクティブセルを識別できます。デフォルトでは、選択されたセルの周囲には、下図に示すように実線のフォーカス長方形が表示されます。列(または行)全体が選択された場合は、この列(または行)内の先頭セルにフォーカス長方形が表示され、この列(または行)は強調表示されます(下図参照)。アクティブセルに対応する列ヘッダおよび行ヘッダにも、異なる背景色が表示されます。
選択された単一セルに対するフォーカスインジケータ | 選択された列に対するフォーカスインジケータ |
アクティブセルのフォーカスインジケータをカスタマイズするには、FpSpreadクラスのFocusRendererプロパティ(IFocusIndicatorRendererインタフェースを使用)を使用します。アニメーションインジケータを使用するには、IAnimatedFocusIndicatorRendererインタフェースが必要です。アクティブセルのヘッダに設定される背景色を変更することもできます。
次の表は、フォーカスインジケータの種類と、それぞれに対応するクラスの一覧を示します。
種類 | クラス |
---|---|
デフォルト | DefaultFocusIndicatorRenderer |
アニメーション | AnimatedDefaultFocusIndicatorRenderer |
カスタムライン | CustomFocusIndicatorRenderer |
編集中 | EditingFocusIndicatorRenderer |
拡張 | EnhancedFocusIndicatorRenderer |
イメージ | ImageFocusIndicatorRenderer |
マーキーライン | MarqueeFocusIndicatorRenderer |
実線 | SolidFocusIndicatorRenderer |
DefaultFocusIndicatorRendererクラスは、他のクラスの基本クラスです。ImageFocusIndicatorRendererクラスを使用すると、フォーカスインジケータとしてイメージを使用できます。SolidFocusIndicatorRendererクラスを使用すると、フォーカスインジケータとして選択セルの周囲に実線を表示するようにカスタマイズできます。
SPREADデザイナでは、フォーカスインジケータエディタを使用して、フォーカスインジケータをカスタマイズできます。SPREADデザイナの詳しい使用方法については、「SPREADデザイナガイド」、および「フォーカス インジケータ エディタ」を参照してください。
カスタムフォーカスインジケータを作成するには、IFocusIndicatorRendererインタフェースを使用します。
次のサンプルコードは、カスタムフォーカスインジケータを作成します。
C# |
コードのコピー
|
---|---|
private void Form1_Load(object sender, System.EventArgs e) { fpSpread1.FocusRenderer = new MyIndicator(); } // カスタムフォーカスインジケータを作成します。 public class MyIndicator : FarPoint.Win.Spread.IFocusIndicatorRenderer { public void Paint(System.Drawing.Graphics g, int x, int y, int width, int height, bool left, bool top, bool right, bool bottom) { SolidBrush r = new SolidBrush(System.Drawing.Color.Red); SolidBrush b = new SolidBrush(System.Drawing.Color.Blue); SolidBrush gr = new SolidBrush(System.Drawing.Color.DarkGreen); g.FillRectangle(r, x, y, 1, height); g.FillRectangle(gr, x, y, width, 1); g.FillRectangle(r, x + width - 1, y, 1, height); g.FillRectangle(b, x, y + height - 1, width, 1); } } |
Visual Basic |
コードのコピー
|
---|---|
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load FpSpread1.FocusRenderer = New MyIndicator() End Sub ' カスタムフォーカスインジケータを作成します。 Public Class MyIndicator Implements FarPoint.Win.Spread.IFocusIndicatorRenderer Public Sub Paint(ByVal g As System.Drawing.Graphics, ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer, ByVal left As Boolean, ByVal top As Boolean, ByVal right As Boolean, ByVal bottom As Boolean) Implements FarPoint.Win.Spread.IFocusIndicatorRenderer.Paint Dim r As New SolidBrush(Color.Red) Dim b As New SolidBrush(Color.Blue) Dim gr As New SolidBrush(Color.DarkGreen) g.FillRectangle(r, x, y, 1, height) g.FillRectangle(gr, x, y, width, 1) g.FillRectangle(r, x + width - 1, y, 1, height) g.FillRectangle(b, x, y + height - 1, width, 1) End Sub End Class |
次のサンプルコードは、アクティブセルのヘッダの背景色を変更します。
アクティブセルのヘッダの背景色を設定するには、EnhancedColumnHeaderRenderer(またはEnhancedRowHeaderRenderer)クラスのSelectedBackgroundColorプロパティを使用します。
C# |
コードのコピー
|
---|---|
FarPoint.Win.Spread.CellType.EnhancedColumnHeaderRenderer testing = new FarPoint.Win.Spread.CellType.EnhancedColumnHeaderRenderer(); testing.SelectedBackgroundColor = Color.MediumTurquoise; FarPoint.Win.Spread.CellType.EnhancedRowHeaderRenderer testing1 = new FarPoint.Win.Spread.CellType.EnhancedRowHeaderRenderer(); testing1.SelectedBackgroundColor = Color.MediumTurquoise; fpSpread1.Sheets[0].ColumnHeader.DefaultStyle.Renderer = testing; fpSpread1.Sheets[0].RowHeader.DefaultStyle.Renderer = testing1; |
Visual Basic |
コードのコピー
|
---|---|
Dim testing as New FarPoint.Win.Spread.CellType.EnhancedColumnHeaderRenderer testing.SelectedBackgroundColor = Color.MediumTurquoise Dim testing1 as New FarPoint.Win.Spread.CellType.EnhancedRowHeaderRenderer testing1.SelectedBackgroundColor = Color.MediumTurquoise FpSpread1.Sheets(0).ColumnHeader.DefaultStyle.Renderer = testing FpSpread1.Sheets(0).RowHeader.DefaultStyle.Renderer = testing1 |