アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2005でDataGridViewを使用して属性番号、日時順、電圧値といったデータ行を表示させています。
複数のcsvファイルから読み込んで表示させていますが、この表示を属性番号順・日時順といった順で並べ替えをしたいのです。
DataGridView.Sortメソッドを使用して
日時列→属性番号列といった順で連続的にソート処理をしています。
が、上手くいきません。
年末の忙しいところ皆さん申し訳ないのですが、知っている方教えて下さい。
最終的には属性順には並んでいますが、最初の日時順が崩れてしまっています。
日時順を元に属性番号順に並べ替える時に、並び順が下がる対象行があるとします。
この並び順が下がる行データの移動先の位置にあった行データが日時を無視して入れ替わりに上がってきてしまっています・・・

よろしくお願いしますm(__)m

A 回答 (3件)

参考になれば


DataGridViewを複数カラムでソートする手法です。

http://dobon.net/vb/bbs/log3-22/13851.html

参考URL:http://dobon.net/vb/bbs/log3-22/13851.html

この回答への補足

早速のご回答ありがとうございます。

・・・すみません。
初心者なもので、参考サイトを見ましたが、よく理解できませんでした。
もう少し、かみくだいて教えて頂けませんでしょうか。

よろしくお願いしますm(__)m

補足日時:2008/12/22 20:11
    • good
    • 0

noah7150さんが紹介しているページの日本語版です。



下記URLの
「IComparer インターフェイスを使用したカスタムの並べ替え」
をコピペして動かしてみてください。

' If the Last Names are equal, sort based on the First Name. 
とコメントがあるので、
Last Namesが同じだったら、First Nameでソート・・・
という処理をしているんだと思います。

わかりにくい場合、グリッドの中身を数値に置き換えてみると
わかりやすいかもしれません。

とりあえず動かしてみるとわかると思います。

http://msdn.microsoft.com/ja-jp/library/ms171608 …

参考URL:http://msdn.microsoft.com/ja-jp/library/ms171608 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
無事解決しました。
年末年始体調不良で寝込んでまして、なかなか確認作業ができずにお礼が遅れスミマセンでした。。。

因みに上手くいかなかった方法は市販の書籍に掲載されていた
dataGridView.sort(column,direction)を使用して
column=0を実行後、続けてcolumn=1を実行していました。

この方法は間違ったやり方だったのでしょうか?
それともVBのバグですかね?

お礼日時:2009/01/06 14:26

こんにちは。



> この方法は間違ったやり方だったのでしょうか?
> それともVBのバグですかね?
やりたいことが複数のソートキーでの並び替えということだったので、
やり方的に間違ってるような気がします。

カラム名を渡すやり方は、ソートキーは1つしか指定できないっぽいので。
DataGridView.Sortメソッドを使って複数条件でソートする場合はharajapanさんが解決したやり方じゃないとできないみたいです。

バグではないと思います。
    • good
    • 0
この回答へのお礼

再三のご回答ありがとうございました。
何となくエクセル感覚で行くとシングルソートを連続して2回やればできるのではと思い込んでいました。
以後はご教示頂いた手法で行う様にします。
ありがとうございました。

お礼日時:2009/01/13 09:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!