特定のセル型への移動を禁止するには?
対象製品
El Tabelle for .NET
詳細
特定のセル型、たとえばボタン型セルへの移動を禁止し、マウスクリックのみによるアクセスを許可するには次のように EnteringCell イベントでセルの移動を制御します。
なお、直前のセルに戻る以外の処理は、移動先のセルの位置や移動処理により無限ループに陥る恐れがあります。
[Visual Basic]
[C#]
なお、直前のセルに戻る以外の処理は、移動先のセルの位置や移動処理により無限ループに陥る恐れがあります。
[Visual Basic]
Private Sub Sheet1_EnteringCell(ByVal sender As Object, _
ByVal e As GrapeCity.Views.ElTabelle.EnteringCellEventArgs) _
Handles Sheet1.EnteringCell
'マウスクリック以外の操作によるボタン型セルの選択(移動)を禁止する
If Not e.MoveStatus = GrapeCity.Views.ElTabelle.MoveStatus.MouseClick Then
Sheet1.CellPosition = e.NewPosition
If Sheet1.CellEditor.GetType Is _
GetType(GrapeCity.Win.Editors.ButtonEditor) Then
Select Case e.MoveStatus
Case GrapeCity.Views.ElTabelle.MoveStatus.NextCell
SendKeys.Send("{TAB}")
Case GrapeCity.Views.ElTabelle.MoveStatus.PrevCell
SendKeys.Send("+{TAB}")
Case GrapeCity.Views.ElTabelle.MoveStatus.NextRow
SendKeys.Send("{DOWN}")
Case GrapeCity.Views.ElTabelle.MoveStatus.PrevRow
SendKeys.Send("{UP}")
Case Else
e.NewPosition = Sheet1.ActivePosition
End Select
End If
End If
End Sub
ByVal e As GrapeCity.Views.ElTabelle.EnteringCellEventArgs) _
Handles Sheet1.EnteringCell
'マウスクリック以外の操作によるボタン型セルの選択(移動)を禁止する
If Not e.MoveStatus = GrapeCity.Views.ElTabelle.MoveStatus.MouseClick Then
Sheet1.CellPosition = e.NewPosition
If Sheet1.CellEditor.GetType Is _
GetType(GrapeCity.Win.Editors.ButtonEditor) Then
Select Case e.MoveStatus
Case GrapeCity.Views.ElTabelle.MoveStatus.NextCell
SendKeys.Send("{TAB}")
Case GrapeCity.Views.ElTabelle.MoveStatus.PrevCell
SendKeys.Send("+{TAB}")
Case GrapeCity.Views.ElTabelle.MoveStatus.NextRow
SendKeys.Send("{DOWN}")
Case GrapeCity.Views.ElTabelle.MoveStatus.PrevRow
SendKeys.Send("{UP}")
Case Else
e.NewPosition = Sheet1.ActivePosition
End Select
End If
End If
End Sub
[C#]
private void sheet1_EnteringCell(object sender, GrapeCity.Views.ElTabelle.EnteringCellEventArgs e)
{
//マウスクリック以外の操作によるボタン型セルの選択(移動)を禁止する
if(e.MoveStatus != GrapeCity.Views.ElTabelle.MoveStatus.MouseClick)
{
sheet1.CellPosition = e.NewPosition;
if(sheet1.CellEditor.GetType() == typeof(GrapeCity.Win.Editors.ButtonEditor))
{
switdh(e.MoveStatus)
{
case GrapeCity.Views.ElTabelle.MoveStatus.NextCell:
SendKeys.Send("{TAB}");
break;
case GrapeCity.Views.ElTabelle.MoveStatus.PrevCell:
SendKeys.Send("+{TAB}");
break;
case GrapeCity.Views.ElTabelle.MoveStatus.NextRow;
SendKeys.Send("{DOWN}");
break;
case GrapeCity.Views.ElTabelle.MoveStatus.PrevRow;
SendKeys.Send("{UP}");
break;
default:
e.NewPosition = sheet1.ActivePosition;
break;
}
}
}
}
{
//マウスクリック以外の操作によるボタン型セルの選択(移動)を禁止する
if(e.MoveStatus != GrapeCity.Views.ElTabelle.MoveStatus.MouseClick)
{
sheet1.CellPosition = e.NewPosition;
if(sheet1.CellEditor.GetType() == typeof(GrapeCity.Win.Editors.ButtonEditor))
{
switdh(e.MoveStatus)
{
case GrapeCity.Views.ElTabelle.MoveStatus.NextCell:
SendKeys.Send("{TAB}");
break;
case GrapeCity.Views.ElTabelle.MoveStatus.PrevCell:
SendKeys.Send("+{TAB}");
break;
case GrapeCity.Views.ElTabelle.MoveStatus.NextRow;
SendKeys.Send("{DOWN}");
break;
case GrapeCity.Views.ElTabelle.MoveStatus.PrevRow;
SendKeys.Send("{UP}");
break;
default:
e.NewPosition = sheet1.ActivePosition;
break;
}
}
}
}
キーワード
HowTo
この文書は、以前は次のFAQ IDで公開されていました : 3562