イベントでアクティブなセルのセルキーを取得するには?(MultiRowSheet)

文書番号 : 19756     文書種別 : 使用方法     最終更新日 : 2006/07/07
文書を印刷する
対象製品
El Tabelle for .NET 3.0J
詳細
MultiRowSheet のイベントでは、座標(列番号・行番号)によってセルを参照することができます。しかし、テンプレートのレイアウトを変更した場合、すべての座標をテンプレートに合わせて再設定する必要が生じてしまいます。
この場合、セルキー(TCell.Key / MCell.Key)を使用することで座標に依存しない処理を行うことができます。v3.2.2006.0414 以降では、アクティブなセルのセルキーを取得するための MultiRowSheet.ActiveCellKey プロパティを利用できます。

[Visual Basic]
Private Sub Form1_Load(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles MyBase.Load
  'テンプレートを作成する
  Dim objTemplate As New GrapeCity.Win.ElTabelle.Template
  objTemplate.Cells(0, 0).Key = "名前"
  objTemplate.Cells(0, 1).Key = "年齢"
  objTemplate.Cells(1, 0).Key = "性別"
  objTemplate.Cells(1, 1).Key = "所属"

  MultiRowSheet1.Template = objTemplate
End Sub

Private Sub MultiRowSheet1_CellClick(ByVal sender As Object, _
  ByVal e As GrapeCity.Win.ElTabelle.MClickEventArgs) _
  Handles MultiRowSheet1.CellClick

  Console.WriteLine("アクティブなセル: " & MultiRowSheet1.ActiveCellKey)

End Sub


[C#]
private void Form1_Load(object sender, System.EventArgs e)
{
  //テンプレートを作成する
  GrapeCity.Win.ElTabelle.Template objTemplate =
    new GrapeCity.Win.ElTabelle.Template();
  objTemplate.Cells[0, 0].Key = "名前";
  objTemplate.Cells[0, 1].Key = "年齢";
  objTemplate.Cells[1, 0].Key = "性別";
  objTemplate.Cells[1, 1].Key = "所属";

  multiRowSheet1.Template = objTemplate;
}

private void multiRowSheet1_CellClick(object sender,
  GrapeCity.Win.ElTabelle.MClickEventArgs e);
{
  Console.WriteLine("アクティブなセル: " + multiRowSheet1.ActiveCellKey);
}


v3.2.2006.0414 以前のバージョンでは、イベントで取得できる座標と MultiRowSheet.Template プロパティとを組み合わせることでアクティブなセルのセルキーを取得できます。

[Visual Basic]
Private Sub MultiRowSheet1_CellClick(ByVal sender As Object, _
  ByVal e As GrapeCity.Win.ElTabelle.MClickEventArgs) _
  Handles MultiRowSheet1.CellClick

  Dim strActiveCellKey As String
  strActiveCellKey = MultiRowSheet1.Template.Cells( _
    e.Position.Column, e.Position.Row).Key

  Select Case strActiveCellKey
    Case "名前"
    Case "年齢"
  End Select

  Console.WriteLine("アクティブなセル: " & strActiveCellKey)

End Sub


[C#]
private void multiRowSheet1_CellClick(object sender,
  GrapeCity.Win.ElTabelle.MClickEventArgs e)
{
  string strActiveCellKey;
  strActiveCellKey = multiRowSheet1.Template.Cells[
    e.Position.Column, e.Position.Row].Key;

  switch(strActiveCellKey)
  {
    case "名前":
      break;
    case "年齢":
      break;
  }

  Console.WriteLine("アクティブなセル: " + strActiveCellKey);
}


※ MultiRowSheet.ActiveCellKey プロパティは、アセンブリ バージョン v3.2.2006.0414 以降で利用可能です。
※ MultiRowSheet.Template プロパティは、アセンブリ バージョン v3.1.2005.0615 以降で利用可能です。
最新の修正版はこちら からダウンロードできます。
キーワード
HowTo

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