SPREADのアクティブシートへ設定した文字列データが、 セル上に収まりきらない場合テキストチップとして表示させることができます。
SPREADコントロールの「TextTipPolicy」プロパティを「Floating」に設定することで、 セル上にマウスを移動した時に、セルに設定されている文字列がテキストチップとして表示されます。
以下のソースでは、TextTipFetchイベントでの処理を行うことで、 セルのTextに設定された文字列とは別のものを表示する処理を行っています。
フォームロード時にSPREADの初期化を行い、 アクティブシートのカラム数を6に設定し、ヘッダ行数を0でクリア設定しています。 また、「TextTipPolicy」プロパティを「Floating」に設定しています。
フォーム表示後、ボタンをクリックすると、 クリックイベント内で宣言された固定的なテストデータをSPREADに設定し表示させます。
データの1行分毎の処理で、「RowCount」プロパティを+1して行を追加します。 行の追加した後で、3個のセルに対して別々の値を設定しています。 2カラム目の「Tag」にテキストチップとして表示する文字列を設定しています。
「TextTipFetch」イベントでは対象となる2カラム目の場合のみ「Tag」から表示文字列を取得し チップテキストに設定しています。尚、カラムフッタ、カラムヘッダ、行ヘッダは処理を省いています。
下図は、フォームが表示後「Button1」をクリックしてデータを表示させて、 マウスを5行目の2カラム目に持っていった時の表示です。
=====
2016/02/29:の時の情報
SPREADコントロールの「TextTipPolicy」プロパティを「Floating」に設定することで、 セル上にマウスを移動した時に、セルに設定されている文字列がテキストチップとして表示されます。
以下のソースでは、TextTipFetchイベントでの処理を行うことで、 セルのTextに設定された文字列とは別のものを表示する処理を行っています。
フォームロード時にSPREADの初期化を行い、 アクティブシートのカラム数を6に設定し、ヘッダ行数を0でクリア設定しています。 また、「TextTipPolicy」プロパティを「Floating」に設定しています。
フォーム表示後、ボタンをクリックすると、 クリックイベント内で宣言された固定的なテストデータをSPREADに設定し表示させます。
データの1行分毎の処理で、「RowCount」プロパティを+1して行を追加します。 行の追加した後で、3個のセルに対して別々の値を設定しています。 2カラム目の「Tag」にテキストチップとして表示する文字列を設定しています。
「TextTipFetch」イベントでは対象となる2カラム目の場合のみ「Tag」から表示文字列を取得し チップテキストに設定しています。尚、カラムフッタ、カラムヘッダ、行ヘッダは処理を省いています。
Public Class Form1
'フォームロード時にSPREADの初期化
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'SPREADのアクティブシートのカラム数を3に設定
Me.FpSpread1.ActiveSheet.ColumnCount = 3
'SPREADの行クリア
Me.FpSpread1.ActiveSheet.RowCount = 0
'TextTip表示指定
Me.FpSpread1.TextTipPolicy = FarPoint.Win.Spread.TextTipPolicy.Floating
End Sub
'ボタンクリックでカラム連結処理
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'ボタン不可設定
sender.Enabled = False
'ソースが長くなるのでWith宣言
With Me.FpSpread1.ActiveSheet
'描画を停止させる
Me.FpSpread1.SuspendLayout()
'データの行数分の処理
For i As Integer = 0 To 9999
'行数を増やす
.RowCount += 1
'各セルへのデータ設定
'第1カラムはボタン(ButtonCellType)
Dim buttonCell As New FarPoint.Win.Spread.CellType.ButtonCellType
buttonCell.Text = i.ToString("0000") 'ボタンのキャプション
.Cells(i, 0).CellType = buttonCell
'第2カラムはテキスト(TextCellType)
Dim textCell As New FarPoint.Win.Spread.CellType.TextCellType
.Cells(i, 1).CellType = textCell
.Cells(i, 1).Text = "Test" & i.ToString("0000")
'Tagにチップテキストの設定
.Cells(i, 1).Tag = "ZZZZZZZZZZZZZZZZZ" & i.ToString("0000")
'第3カラムはチェックボックス(CheckBoxCellType)
Dim chkCell As New FarPoint.Win.Spread.CellType.CheckBoxCellType
.Cells(i, 2).CellType = chkCell
.Cells(i, 2).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center
.Cells(i, 2).Value = CBool(i Mod 2 = 0) '値はValueに設定
Next
End With
'描画を再開させる
Me.FpSpread1.ResumeLayout(True)
'ボタン許可設定
sender.Enabled = True
End Sub
'TextTipFetchイベント
Private Sub FpSpread1_TextTipFetch(ByVal sender As Object,
ByVal e As FarPoint.Win.Spread.TextTipFetchEventArgs) Handles FpSpread1.TextTipFetch
'カラムフッタ、カラムヘッダ、行ヘッダは処理しない
If e.ColumnFooter Or e.ColumnHeader Or e.RowHeader Then
Exit Sub
End If
If Not e.FetchCellNote Then
'2番目のカラム??
If e.Column = 1 Then
'Tagに退避してある文字列
Dim text As String = e.View.GetSheetView().GetTag(e.Row, e.Column)
'チップウィンドウとして表示
e.ShowTip = True
'ポップアップヒントのテキスト設定
e.TipText = text
End If
End If
End Sub
End Class
下図は、フォームが表示後「Button1」をクリックしてデータを表示させて、 マウスを5行目の2カラム目に持っていった時の表示です。
=====
2016/02/29:の時の情報
PR
コメント