Datagridviewでのstring型の値のソート

解決


永井  2008-09-05 16:14:54  No: 145159  IP: 192.*.*.*

Dim hoge(3) string
DataGridView1.Rows.Add(hoge)
をループさせてdatagridviewに複数行の表を作成しています。
1番目のインデックスには連番が入ります。

作成された連番のヘッダをクリックしてソートすると、
実際の結果:1,10,100,101,102…
希望する結果:1,2,3,4,5,…
となってしまいます。
配列がstring型なのではと考えていますが
配列の特定のインデックスだけ型を変更
もしくは
datagridviewの特定のフィールドだけ型を変換
といった事は可能なのでしょうか?
dim i as integer
DataGridView.Rows(i).Cells(0).Value = i
で作成すると並び替えは正常ですが速度が10倍ほど違います。

よろしくお願いします。

編集 削除
魔界の仮面弁士  2008-09-05 17:54:30  No: 145160  IP: 192.*.*.*

> DataGridView1.Rows.Add(hoge)
> をループさせてdatagridviewに複数行の表を作成しています。

そうではなく、DataTable/DataView をバインドするようにしてください。
そして DataTable の連番列を Integer 型にしておけば解決するかと。

DataGridView のセルを直接操作するより、バインド元の
DataTable を読み書きする方が、パフォーマンスは高くなります。

編集 削除
永井  2008-09-07 23:11:22  No: 145161  IP: 192.*.*.*

魔界の仮面弁士さんありがとうございます。
Datatableの方を変えた方がいいんですね。

まだDataTableの使い方がいまいちわかってませんが、
がんばって調べます。
ありがとうございました。

編集 削除