選択されている行を取得する方法
対象製品
MultiRow for Windows Forms 5.0J
詳細
選択されている行を取得するには、GcMultiRow.SelectedRows プロパティのコレクションにアクセスするか、または Row.Selected プロパティの値を確認します。
[Visual Basic]
[C#]
GcMultiRow.SelectedRows プロパティの結果は選択順ですが、Row.Selected プロパティの結果は行番号順になる違いに注意してください。
次のコードは Enumerable.OrderBy メソッドを使用した選択されている行の並び替えと、LINQ による選択されている行の取得を行います。ラムダ式とLINQ を使用するには Visual Studio 2008 と .NET Framework 3.5 が必要です。
[Visual Basic]
[C#]
[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
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
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
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
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