DoboWiki
Top
> DOBON.NET/note/CheckBoxの付いたListViewの項目を並び替える をテンプレートにして作成
DOBON.NET/note/CheckBoxの付いたListViewの項目を並び替える をテンプレートにして作成
開始行:
*CheckBoxの付いたListViewの項目を並び替える [#w4be97bb]
「[[ListViewの項目を並び替える: .NET Tips>https://dobon.n...
メールを送っていただいたMyaさんに改めて感謝いたします。
#prescroll{{
// 実際のソート処理が行われるCompare関数(どうやらSort()...
// この処理は[-1( X < Y )],[ 0( X = Y )],[ 1( X > Y )...
public int Compare( object x, object y )
{
// TODO: ListViewSorter.Compare 実装を追加します。
// 比較演算の結果を格納する変数。格納されるのは上記の通...
int intResult = INT_RESULT_EQUAL;
// ListViewの獲得。
ListViewItem itemX = ( ListViewItem ) x;
ListViewItem itemY = ( ListViewItem ) y;
// Sortの対象変数型を獲得。
if( intNowComparerMode != INT_NOT_SET_COMPARER_MODE )
intNowComparerMode = intAllComparerMode[ intColumnIndex...
// 現在の比較対象であるXとYの変数型に合わせて比較処理を...
switch( intNowComparerMode )
{
case INT_MODE_STRING: // COMPARER_MODE.INT_STRING: 文字...
intResult = string.Compare( itemX.SubItems[ intColumnI...
break;
case INT_MODE_INTEGER: // 整数比較処理
intResult = int.Parse( itemX.SubItems[ intColumnIndex ...
break;
case INT_MODE_DATE_TIME: // 日付比較処理
intResult = DateTime.Compare(
DateTime.Parse( itemX.SubItems[ intColumnIndex ].Text...
break;
// 比較演算のSort処理も追加を試みます。20100523_2239_Wr...
case INT_MODE_BOOL: // CheckBoxの比較処理
// 比較処理。双方、値が違っていればfalse、等しければtr...
bool bolOrderFlag;
bool bolEqualCheckX;
bool bolEqualCheckY;
// 昇り順か降り順かによってCheckBoxがCheckされているLi...
if( NowSetComparerOrder == SortOrder.Ascending )
bolOrderFlag = true;
else
bolOrderFlag = false;
// チェックボックスの状態を判定。
bolEqualCheckX = bool.Equals( bolOrderFlag, itemX.Chec...
bolEqualCheckY = bool.Equals( bolOrderFlag, itemY.Chec...
if( bolEqualCheckX == bolEqualCheckY == true )
{
// itemXとitemYのCheckBoxが双方、共に並び順と等しいな...
// この[true]は「CheckBoxがチェックされている」という...
intResult = 0;
}
else
{
// 此処は全て上記の条件が是。つまりitemX.Checkedとite...
// つまり上記の理由より、この条件文の中ではintResult...
// 一先ず全ての組み合わせに対して変数をセットします。...
if( bolEqualCheckX == bolEqualCheckY )
{
// 双方共にfalse。この場合がよく分からん。
intResult = 1;
}
else
{
// 両方の値が違う。
if( bolEqualCheckX == true )
intResult = -1;
else
intResult = 1;
}
}
if( NowSetComparerOrder == SortOrder.Descending )
intResult = -intResult; // 降り順の場合は数値を反転し...
// ※上記処理をして下で行われる同様の処理を打ち消さない...
// この処理、上で上手く併せれば無くせると思うんですが…...
break;
}
// 昇り順か降り順かを戻り値に反映。
if( NowSetComparerOrder == SortOrder.Descending )
intResult = -intResult; // 降り順の場合は数値を反転し[-...
else if( NowSetComparerOrder == SortOrder.None )
intResult = INT_RESULT_EQUAL;
// 結果を返します。
return intResult;
}
}}
**コメント [#o389476f]
#comment
//これより下は編集しないでください
#pageinfo(,2012-02-07 (火) 01:50:42,DOBON!,2012-02-07 (火...
終了行:
*CheckBoxの付いたListViewの項目を並び替える [#w4be97bb]
「[[ListViewの項目を並び替える: .NET Tips>https://dobon.n...
メールを送っていただいたMyaさんに改めて感謝いたします。
#prescroll{{
// 実際のソート処理が行われるCompare関数(どうやらSort()...
// この処理は[-1( X < Y )],[ 0( X = Y )],[ 1( X > Y )...
public int Compare( object x, object y )
{
// TODO: ListViewSorter.Compare 実装を追加します。
// 比較演算の結果を格納する変数。格納されるのは上記の通...
int intResult = INT_RESULT_EQUAL;
// ListViewの獲得。
ListViewItem itemX = ( ListViewItem ) x;
ListViewItem itemY = ( ListViewItem ) y;
// Sortの対象変数型を獲得。
if( intNowComparerMode != INT_NOT_SET_COMPARER_MODE )
intNowComparerMode = intAllComparerMode[ intColumnIndex...
// 現在の比較対象であるXとYの変数型に合わせて比較処理を...
switch( intNowComparerMode )
{
case INT_MODE_STRING: // COMPARER_MODE.INT_STRING: 文字...
intResult = string.Compare( itemX.SubItems[ intColumnI...
break;
case INT_MODE_INTEGER: // 整数比較処理
intResult = int.Parse( itemX.SubItems[ intColumnIndex ...
break;
case INT_MODE_DATE_TIME: // 日付比較処理
intResult = DateTime.Compare(
DateTime.Parse( itemX.SubItems[ intColumnIndex ].Text...
break;
// 比較演算のSort処理も追加を試みます。20100523_2239_Wr...
case INT_MODE_BOOL: // CheckBoxの比較処理
// 比較処理。双方、値が違っていればfalse、等しければtr...
bool bolOrderFlag;
bool bolEqualCheckX;
bool bolEqualCheckY;
// 昇り順か降り順かによってCheckBoxがCheckされているLi...
if( NowSetComparerOrder == SortOrder.Ascending )
bolOrderFlag = true;
else
bolOrderFlag = false;
// チェックボックスの状態を判定。
bolEqualCheckX = bool.Equals( bolOrderFlag, itemX.Chec...
bolEqualCheckY = bool.Equals( bolOrderFlag, itemY.Chec...
if( bolEqualCheckX == bolEqualCheckY == true )
{
// itemXとitemYのCheckBoxが双方、共に並び順と等しいな...
// この[true]は「CheckBoxがチェックされている」という...
intResult = 0;
}
else
{
// 此処は全て上記の条件が是。つまりitemX.Checkedとite...
// つまり上記の理由より、この条件文の中ではintResult...
// 一先ず全ての組み合わせに対して変数をセットします。...
if( bolEqualCheckX == bolEqualCheckY )
{
// 双方共にfalse。この場合がよく分からん。
intResult = 1;
}
else
{
// 両方の値が違う。
if( bolEqualCheckX == true )
intResult = -1;
else
intResult = 1;
}
}
if( NowSetComparerOrder == SortOrder.Descending )
intResult = -intResult; // 降り順の場合は数値を反転し...
// ※上記処理をして下で行われる同様の処理を打ち消さない...
// この処理、上で上手く併せれば無くせると思うんですが…...
break;
}
// 昇り順か降り順かを戻り値に反映。
if( NowSetComparerOrder == SortOrder.Descending )
intResult = -intResult; // 降り順の場合は数値を反転し[-...
else if( NowSetComparerOrder == SortOrder.None )
intResult = INT_RESULT_EQUAL;
// 結果を返します。
return intResult;
}
}}
**コメント [#o389476f]
#comment
//これより下は編集しないでください
#pageinfo(,2012-02-07 (火) 01:50:42,DOBON!,2012-02-07 (火...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]