イベントでアクティブなセルのセルキーを取得するには?(MultiRowSheet)
対象製品
El Tabelle for .NET 3.0J
詳細
MultiRowSheet のイベントでは、座標(列番号・行番号)によってセルを参照することができます。しかし、テンプレートのレイアウトを変更した場合、すべての座標をテンプレートに合わせて再設定する必要が生じてしまいます。
この場合、セルキー(TCell.Key / MCell.Key)を使用することで座標に依存しない処理を行うことができます。v3.2.2006.0414 以降では、アクティブなセルのセルキーを取得するための MultiRowSheet.ActiveCellKey プロパティを利用できます。
[Visual Basic]
[C#]
v3.2.2006.0414 以前のバージョンでは、イベントで取得できる座標と MultiRowSheet.Template プロパティとを組み合わせることでアクティブなセルのセルキーを取得できます。
[Visual Basic]
[C#]
※ MultiRowSheet.ActiveCellKey プロパティは、アセンブリ バージョン v3.2.2006.0414 以降で利用可能です。
※ MultiRowSheet.Template プロパティは、アセンブリ バージョン v3.1.2005.0615 以降で利用可能です。
最新の修正版はこちら からダウンロードできます。
この場合、セルキー(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
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);
}
{
//テンプレートを作成する
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
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);
}
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