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

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 が必要です。



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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です