C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 13 を表示中)
■4276 / )  Re[2]: C# dataGridView Sortについて 
□投稿者/ ぽぴ王子 (215回)-(2007/06/12(Tue) 13:58:54)
ぽぴ王子 さんの Web サイト
No4272 (godera さん) に返信

>  e.SortResult をint以上のlongにするにはどうしたらいいか教えてほしいです。
> よろしくお願いします。
> 
> **************************************************
>  //結果を代入
>                 e.SortResult = e.CellValue1 - e.CellValue2;

DataGridViewSortCompareEventArgs.SortResult プロパティ
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.datagridviewsortcompareeventargs.sortresult%28VS.80%29.aspx
によれば。

> 最初のセルを 2 番目のセルよりも前に配置する場合は 0 未満。最初のセルと 2 番目
> のセルの値が同じである場合は 0。2 番目のセルを最初のセルよりも前に配置する場合
> は 0 を超える値。

とありますので、型自体は int でかまわないと思います。
引き算した結果を e.SortResult に入れているので、e.CellValue1 と e.CellValue2 が 
long であるがために困っているのだと推測します。
ただ、解説にもあるように e.SortResult は必ずしも引き算した結果を入れなければいけ
ないわけではありません。0 未満の値、0、0 を超える値のいずれかが入っていればいい
わけです。

ということで、テキトーにこんな感じのコードでどうでしょうか(未検証)。

if (e.CellValue1 == e.CellValue2)
{
    e.SortResult = 0;
}
else if (e.CellValue1 > e.CellValue2)
{
    e.SortResult = 1;
}
else
{
    e.SortResult = -1;
}

MSDN ライブラリを見るとこういった話はちゃんと載っていますので、質問する前に一度
目を通しておくといいと思います。

# って丁寧に書いてきたらえぴさんの一言に集約されてた orz

返信 編集キー/


管理者用

- Child Tree -