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倍ほど違います。
よろしくお願いします。
> DataGridView1.Rows.Add(hoge)
> をループさせてdatagridviewに複数行の表を作成しています。
そうではなく、DataTable/DataView をバインドするようにしてください。
そして DataTable の連番列を Integer 型にしておけば解決するかと。
DataGridView のセルを直接操作するより、バインド元の
DataTable を読み書きする方が、パフォーマンスは高くなります。
魔界の仮面弁士さんありがとうございます。
Datatableの方を変えた方がいいんですね。
まだDataTableの使い方がいまいちわかってませんが、
がんばって調べます。
ありがとうございました。