特定のセル上でマウスカーソルを変更するには?
対象製品
El Tabelle for .NET
詳細
特定のセル上でのみシートのマウスカーソルを変更するには、MouseMove イベントで Sheet クラスの HitTest メソッドを使用します。El Tabelle の既定のマウスカーソルはカスタムカーソルである点に注意してください。既定のマウスカーソルは定数で設定することができません。
[Visual Basic]
[C#]
[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
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;
}
}
}
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