SPREAD上でズームを行うと、ハイパーリンク型セルにあるリンクがクリックできなくなる

文書番号 : 39411     文書種別 : 不具合     登録日 : 2016/05/11     最終更新日 : 2016/09/05
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
状況
修正済み
詳細
SPREAD上でズームを行うと、ハイパーリンク型セルにあるリンクがクリックできなくなる現象が発生します。

【手順】
1.新規フォームにSPREADを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.A1セルのXYZ付近にマウスカーソルを移動します
  --マウスカーソルが変化せず、クリックしてもハイパーリンク機能が動作しません

【サンプルコード】
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' ハイパーリンク型セルの設定
    Dim link As New FarPoint.Win.Spread.CellType.HyperLinkCellType()
    link.Text = "ABC or XYZ."
    link.Links = New String() {"ABC", "XYZ"}
    link.LinkAreas = New LinkArea() {New LinkArea(0, 3), New LinkArea(7, 3)}
    FpSpread1.ActiveSheet.Cells(0, 0).CellType = link
    FpSpread1.ActiveSheet.Columns(0).Width = 100

    ' 拡大表示
    FpSpread1.ZoomFactor = 1.6
  End Sub
回避方法
Service Pack 3(v8.0.3505.2008)で修正済み。
Service Pack 3(v8.0.3505.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

以下のサンプルコードのように、ハイパーリンク型セルを継承した独自のセル型を使用します。

【サンプルコード】
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' ハイパーリンク型セルの設定
    'Dim link As New FarPoint.Win.Spread.CellType.HyperLinkCellType()
    Dim link As New MyHyperLinkCellType()
    link.Text = "ABC or XYZ."
    link.Links = New String() {"ABC", "XYZ"}
    link.LinkAreas = New LinkArea() {New LinkArea(0, 3), New LinkArea(7, 3)}
    FpSpread1.ActiveSheet.Cells(0, 0).CellType = link
    FpSpread1.ActiveSheet.Columns(0).Width = 100

    ' 拡大表示
    FpSpread1.ZoomFactor = 1.6
  End Sub

  Public Class MyHyperLinkCellType
    Inherits FarPoint.Win.Spread.CellType.HyperLinkCellType
    Public Overrides Function IsReservedLocation(g As Graphics, x As Integer, y As Integer, rc As Rectangle, appearance As FarPoint.Win.Spread.Appearance, value As Object,
    zoomFactor As Single) As Object
      If zoomFactor <> 1 Then
        Dim f As New Font(appearance.Font.FontFamily, zoomFactor * appearance.Font.Size)
        appearance.Font = f
      End If
      Return MyBase.IsReservedLocation(g, x, y, rc, appearance, value,
      zoomFactor)
    End Function
  End Class