none
データグリッドビューの選択表示方法は? RRS feed

  • 質問

  • データグリッドビューを使って、リストデータを表示しています。

    配列[index]をデータとして表示しています。プログラムコードでindexを指定して、データグリッドビューの中央に配列[index]のデータを表示したいと考えています。

    適当なメソッドがあれば教えてください。無ければ、実現できる方法を教えてください。

    下のコードを試してみましたが、特定行を反転表示しただけで、表示枠の中央には表示されませんでした。(スクロールしてくれませんでした。また、グリッド左端の▲マークも移動してくれませんでした。)

        gridLog->Rows[10]->Selected=TRUE; // 10行目を選択実行

    適当な方法があれば、教えてください。


     

     

    2006年10月23日 7:56

回答

  • こんな感じでしょうか(C#ですが)。

        dataGridView1.Rows[10].Selected = true;

        int n = dataGridView1.DisplayedRowCount(true);
        dataGridView1.FirstDisplayedScrollingRowIndex = 10-(n/2);
        //10-(n/2)が負になる場合の処理とかは省略してます

    2006年10月24日 0:30
  • あぁ、行ヘッダーのマーカーのことですか。こんな感じのを追加して、現在行を変更してあげればいいはずですが(相変わらずC#で申し訳ありません)

                dataGridView1.CurrentCell = dataGridView1.Rows[10].Cells[0];

    とりあえず、DataGridViewは多機能なので、時間があるときに、どんなことできるかなーとばかりにドキュメントに目を通しておくと、良いと思いますよ。プロパティやメソッドを一通り眺めておけば、あとでやりたいことがすぐ分かるようになる、、、かもしれません。

    2006年10月24日 6:01

すべての返信

  • こんな感じでしょうか(C#ですが)。

        dataGridView1.Rows[10].Selected = true;

        int n = dataGridView1.DisplayedRowCount(true);
        dataGridView1.FirstDisplayedScrollingRowIndex = 10-(n/2);
        //10-(n/2)が負になる場合の処理とかは省略してます

    2006年10月24日 0:30
  • 回答ありがとうございます。

    目的の動作は、達成できました。ありがとう御座いました。

    後、グリッドの左に表示される”▲”マーク(ポインタ)も一緒に移動できれば、もっと良かったのですが・・・。

     

    2006年10月24日 2:58
  • あぁ、行ヘッダーのマーカーのことですか。こんな感じのを追加して、現在行を変更してあげればいいはずですが(相変わらずC#で申し訳ありません)

                dataGridView1.CurrentCell = dataGridView1.Rows[10].Cells[0];

    とりあえず、DataGridViewは多機能なので、時間があるときに、どんなことできるかなーとばかりにドキュメントに目を通しておくと、良いと思いますよ。プロパティやメソッドを一通り眺めておけば、あとでやりたいことがすぐ分かるようになる、、、かもしれません。

    2006年10月24日 6:01
  • GOOD!です。すっきりしました。ありがとう御座いました。DataGridViewは確かに多機能ですね。多すぎて目が回りそうです。暇な時に眺めるようにしたいと思います。

    2006年10月24日 6:28