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

文書番号 : 40499     文書種別 : 使用方法     登録日 : 2017/07/26     最終更新日 : 2017/07/26
文書を印刷する
対象製品
MultiRow for Windows Forms 10.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による選択されている行の取得を行います。

[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