特定のセル型への移動を禁止するには?

文書番号 : 11766     文書種別 : 使用方法     最終更新日 : 2003/11/28
文書を印刷する
対象製品
El Tabelle for .NET
詳細
特定のセル型、たとえばボタン型セルへの移動を禁止し、マウスクリックのみによるアクセスを許可するには次のように EnteringCell イベントでセルの移動を制御します。

なお、直前のセルに戻る以外の処理は、移動先のセルの位置や移動処理により無限ループに陥る恐れがあります。

[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


[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;
      }
    }
  }
}
キーワード
HowTo

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