tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDataGridViewのソート機能
記事No8163
投稿日: 2008/09/17(Wed) 22:22
投稿者のりり
お世話になります。
VB2008のDataGridViewについて質問させてください。

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With DataGridView1
            .Columns.Add(0, "名称")
            .Columns.Add(1, "値")
            .Columns.Add(2, "有効")
            .Columns(0).SortMode = DataGridViewColumnSortMode.Automatic
            .Columns(1).SortMode = DataGridViewColumnSortMode.Automatic
            .Columns(2).SortMode = DataGridViewColumnSortMode.Automatic

            .Rows.Add("キーボード", 4, 1)
            .Rows.Add("マウス", 5, 1)
            .Rows.Add("CPU", 1, 0)
            .Rows.Add("メモリ", 2, 0)
            .Rows.Add("HD", 3, 0)
        End With
    End Sub

列名の有効をクリックすると0と1で並び替えてくれるんですが、
列名の値の並びが5,4,2,1,3となります。

この並びを"値の昇順"、"有効の昇順"のように
4,5,1,2,3としたいのですが、どのように手を加えればよいのでしょうか?
よろしくお願いします。

[ツリー表示へ]
タイトルRe: DataGridViewのソート機能
記事No8164
投稿日: 2008/09/18(Thu) 07:13
投稿者花ちゃん
> 列名の有効をクリックすると0と1で並び替えてくれるんですが、
> 列名の値の並びが5,4,2,1,3となります。

ヘッダーをクリックした場合なら、最初は昇順でもう一度クリックすると降順だったかと
思うのですが。

> この並びを"値の昇順"、"有効の昇順"のように
> 4,5,1,2,3としたいのですが、どのように手を加えればよいのでしょうか?
> よろしくお願いします。

プログラムで指定した場合でしょうか?それともヘッダーをクリックした場合、常時
昇順だけで並び変えたいという事でしょうか?
ColumnHeaderMouseClick イベントで IF 文で制御したのではだめですか。


因みに、DataGridView ソート をキーにサイト内外の検索で

当サイト内々で、42件ヒットしました。
http://tinyurl.com/4wc52q

MSDN のサイトでは、3080件ヒットしました。
http://tinyurl.com/4edfjg

DOBON.NET さんのサイトでは、362件ヒットしました。
http://tinyurl.com/4nqg66

[ツリー表示へ]
タイトルRe^2: DataGridViewのソート機能
記事No8167
投稿日: 2008/09/18(Thu) 17:37
投稿者のりり
お世話になっております。
説明下手ですいません^^;

"有効"のヘッダーをクリックすると
-----------
値 | 有効
----+------
  4 |    1
  5 |    1
  2 |    0
  1 |    0
  3 |    0

となるのですが、

-----------
値 | 有効
----+------
  4 |    1
  5 |    1
  1 |    0
  2 |    0
  3 |    0

となるように"有効"と"値"の複数で昇順の並びにしたいのです。

[ツリー表示へ]
タイトルRe^2: DataGridViewのソート機能
記事No8169
投稿日: 2008/09/18(Thu) 18:58
投稿者のりり
たびたびすいません^^;

イベントで IF 文制御し対応できました

ありがとうございました

[ツリー表示へ]
タイトルRe^3: DataGridViewのソート機能
記事No8170
投稿日: 2008/09/18(Thu) 19:33
投稿者花ちゃん
> イベントで IF 文制御し対応できました

複数列をキーにソートするなら、上記だけでは対応出来なかったと思うのですが
どのようにされて解決したのでしょうか?

[ツリー表示へ]