選択されている行を取得する方法

文書番号 : 26074     文書種別 : 使用方法     最終更新日 : 2008/07/22
文書を印刷する
対象製品
MultiRow for Windows Forms 5.0J
詳細
選択されている行を取得するには、GcMultiRow.SelectedRows プロパティのコレクションにアクセスするか、または Row.Selected プロパティの値を確認します。

[Visual Basic]
Imports GrapeCity.Win.MultiRow

Me.GcMultiRow1.RowCount = 6
Me.GcMultiRow1.ViewMode = ViewMode.Row

Me.GcMultiRow1.Rows(0).Selected = True
Me.GcMultiRow1.Rows(4).Selected = True
Me.GcMultiRow1.Rows(2).Selected = True

Console.WriteLine("SelectedRows プロパティで取得:")
For Each selectedRow As Row In Me.GcMultiRow1.SelectedRows
  Console.WriteLine(selectedRow.Index)
Next
' 結果は 0,4,2

Console.WriteLine("Selected プロパティで取得:")
For Each row As Row In Me.GcMultiRow1.Rows
  If row.Selected Then
    Console.WriteLine(row.Index)
  End If
Next
' 結果は 0,2,4


[C#]
using GrapeCity.Win.MultiRow;

this.gcMultiRow1.RowCount = 6;
this.gcMultiRow1.ViewMode = ViewMode.Row;

this.gcMultiRow1.Rows[0].Selected = true;
this.gcMultiRow1.Rows[4].Selected = true;
this.gcMultiRow1.Rows[2].Selected = true;

Console.WriteLine("SelectedRows プロパティで取得:");
foreach (Row selectedRow in this.gcMultiRow1.SelectedRows)
{
  Console.WriteLine(selectedRow.Index);
}
// 結果は 0,4,2

Console.WriteLine("Selected プロパティで取得:");
foreach (Row row in this.gcMultiRow1.Rows)
{
  if (row.Selected)
    Console.WriteLine(row.Index);
}
// 結果は 0,2,4


GcMultiRow.SelectedRows プロパティの結果は選択順ですが、Row.Selected プロパティの結果は行番号順になる違いに注意してください。

次のコードは Enumerable.OrderBy メソッドを使用した選択されている行の並び替えと、LINQ による選択されている行の取得を行います。ラムダ式とLINQ を使用するには Visual Studio 2008 と .NET Framework 3.5 が必要です。

[Visual Basic]
Imports GrapeCity.Win.MultiRow

Me.GcMultiRow1.RowCount = 6
Me.GcMultiRow1.ViewMode = ViewMode.Row

Me.GcMultiRow1.Rows(0).Selected = True
Me.GcMultiRow1.Rows(4).Selected = True
Me.GcMultiRow1.Rows(2).Selected = True

Console.WriteLine("SelectedRows プロパティの結果を並び替え:")
Dim rows As SelectedRowCollection = Me.GcMultiRow1.SelectedRows
Dim query As IEnumerable(Of Row) = rows.OrderBy(Function(row) row.Index)
For Each selectedRow As Row In query
  Console.WriteLine(selectedRow.Index)
Next
' 結果は 0,2,4

Console.WriteLine("Selected プロパティで取得:")
Dim selectedRows = From row As Row In Me.GcMultiRow1.Rows Where row.Selected = True Select row
For Each selectedRow As Row In selectedRows
  Console.WriteLine(selectedRow.Index)
Next
' 結果は 0,2,4


[C#]
using System.Linq;
using GrapeCity.Win.MultiRow;

this.gcMultiRow1.RowCount = 6;
this.gcMultiRow1.ViewMode = ViewMode.Row;

this.gcMultiRow1.Rows[0].Selected = true;
this.gcMultiRow1.Rows[4].Selected = true;
this.gcMultiRow1.Rows[2].Selected = true;

Console.WriteLine("SelectedRows プロパティの結果を並び替え:");
SelectedRowCollection rows = this.gcMultiRow1.SelectedRows;
IEnumerable<Row> query = rows.OrderBy(row => row.Index);
foreach (Row selectedRow in query)
{
  Console.WriteLine(selectedRow.Index);
}
// 結果は 0,2,4

Console.WriteLine("Selected プロパティで取得:");
var selectedRows = from Row row in this.gcMultiRow1.Rows where row.Selected == true select row;
foreach (Row selectedRow in selectedRows)
{
  Console.WriteLine(selectedRow.Index);
}
// 結果は 0,2,4

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