特定のセル上でマウスカーソルを変更するには?

文書番号 : 11540     文書種別 : 使用方法     最終更新日 : 2003/05/15
文書を印刷する
対象製品
El Tabelle for .NET
詳細
特定のセル上でのみシートのマウスカーソルを変更するには、MouseMove イベントで Sheet クラスの HitTest メソッドを使用します。El Tabelle の既定のマウスカーソルはカスタムカーソルである点に注意してください。既定のマウスカーソルは定数で設定することができません。

[Visual Basic]
Private m_DefaultCrossCursor As System.Windows.Forms.Cursor

Private Sub Form1_Load(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles MyBase.Load
  '既定のカスタムカーソルを保存しておく
  m_DefaultCrossCursor = Sheet1.CrossCursor
End Sub

Private Sub Sheet1_MouseMove(ByVal sender As Object, _
  ByVal e As System.Windows.Forms.MouseEventArgs) Handles Sheet1.MouseMove

  Dim objRange As New GrapeCity.Views.ElTabelle.Range()

  'セルの場合
  If Sheet1.HitTest(New Point(e.X, e.Y), objRange) = _
    GrapeCity.Views.ElTabelle.SheetArea.Cell Then
    'マウスカーソルが指し示すセルにC3セルが含まれているか確認する
    If objRange.Contains(New GrapeCity.Views.ElTabelle.Position("C3")) = _
      True Then
      'シートのマウスカーソルをハンドに変更する
      Sheet1.CrossCursor = System.Windows.Forms.Cursors.Hand
    Else
      'シートのマウスカーソルをデフォルトのカスタムカーソルに変更する
      Sheet1.CrossCursor = m_DefaultCrossCursor
    End If
  End If

End Sub


[C#]
private System.Windows.Forms.Cursor m_DefaultCrossCursor;

private void Form1_Load(object sender, System.EventArgs e)
{
  //既定のカスタムカーソルを保存しておく
  m_DefaultCrossCursor = sheet1.CrossCursor;
}

private void sheet1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
  GrapeCity.Views.ElTabelle.Range objRange;

  //セルの場合
  if(sheet1.HitTest(new Point(e.X, e.Y), out objRange) ==
    GrapeCity.Views.ElTabelle.SheetArea.Cell)
  {
    //マウスカーソルが指し示すセルにC3セルが含まれているか確認する
    if(objRange.Contains(new GrapeCity.Views.ElTabelle.Position("C3")) == true)
    {
      //シートのマウスカーソルをハンドに変更する
      sheet1.CrossCursor = System.Windows.Forms.Cursors.Hand;
    }else{
      //シートのマウスカーソルをデフォルトのカスタムカーソルに変更する
      sheet1.CrossCursor = m_DefaultCrossCursor;
    }
  }
}
キーワード
HowTo

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