DataGridViewの一番上の行

タグの編集
投稿者 Hoid  (社会人) 投稿日時 2008/10/3 21:51:34
いつもお世話になっております。
早速ですが現在DataGridViewを使用しています。
そのViewに自動的に並べ替えを行おうと
Me.dgv_a.Sort(Me.dgv_a.Columns(3), System.ComponentModel.ListSortDirection.Ascending)
とコードを記載し運用してみたところ一番上の行にはこのプログラムが適用されず2行目以降は問題なく動作してくれます。
なにかViewのプロパティ等設定の仕方でこのようなことになるのでしょうか?
ご教授お願いいたします。
投稿者 るしぇ  (社会人) 投稿日時 2008/10/3 22:25:30
提示されたコードでは現象を再現できませんでした。

こちらの環境ではヘッダをマウスでクリックしたのと同様に
並べ替えられているヘッダに△マークが表示され、全ての
データが昇順になりました。

もう一度表示されているデータを確認してください。
投稿者 Hoid  (社会人) 投稿日時 2008/10/3 22:56:14
るしぇ様早々の回答ありがとうございます。
説明が足りませんでした。
作業の流れとしては、テキストボックに項目を入力後Viewデータの中から入力データと一致するのもを検索し見つかった場合4列目に日時を入力するというものです。
そこで2行目以降のデータで一致するものがあれば自動入力⇒自働並べ替えといくのですが、一番上のデータのみ日時は自働入力されるのですが自働並べ替えが行われません。列ヘッダをクリックすれば並べ替えは行われます。
何か1番上の行だけ特殊なのでしょうか
投稿者 るしぇ  (社会人) 投稿日時 2008/10/4 02:01:57
> 列ヘッダをクリックすれば並べ替えは行われます。
であるなら、まずは自分が書いたコードに問題があると
思うべきです。
自動入力という処理がどんなものかこちらが知る手段が
ないわけですが、Edit系のコマンドを呼び出しているなら
実は入力を確定できてないとか?

情報として出てきてるコードが
> Me.dgv_a.Sort(Me.dgv_a.Columns(3), System.ComponentModel.ListSortDirection.Ascending)
だけでは何とも言えません。
投稿者 Hoid  (社会人) 投稿日時 2008/10/6 17:39:18
るしぇ様私の説明不足でご迷惑をおかけしています。
現在は
 Private Sub txt_n_number_KeyDown
        If e.KeyCode = 13 Then
            For n As Integer = 0 To any
                If Me.dgv_a(0, n).Value = Me.txt_n_number.Text Then
                    If IsDBNull(Me.dgv_a(3, n).Value) Then
                        Me.dgv_a(3, n).Value = Now.ToString("t")
                        Me.txt_n_number.Text = ""
                        Exit For
                    Else
                        Me.txt_n_number.Text = ""
                        Exit For
                    End If
                End If
            Next
        End If
 End Sub

上記コードで運用していますが、2行目以降は終了後勝手に並べ替えを行うのですが、1行目は日付けは入力されるのですが並べ替えが行われません。
1行目のみなぜか入力された値が確定していないようです。
何度も申しわけありませんがよろしくお願いいたします。