Datagridviewでのstring型の値のソート

解決


永井  2008-09-06 01:14:54  No: 145159

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-06 02:54:30  No: 145160

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

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

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


永井  2008-09-08 08:11:22  No: 145161

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加