0

私がする必要があること: 1. ユーザーが datagriview の行をクリックしたとき。この行のみが別のデータグリッドビューに表示されます(編集できるようにするためなど...)

注: grid_display = 行を取得する必要がある場所から。注: grid_detail = 単一の行をコピーする必要がある場所へ。

私が今まで持っているもの:

   foreach (DataGridViewColumn c in grid_display.Columns)
            {
                grid_detail.Columns.Add(c.Clone() as DataGridViewColumn);
            }

            //then you can copy the rows values one by one (working on the selectedrows collection)
            foreach (DataGridViewRow r in grid_display.SelectedRows)
            {
                int index = grid_detail.Rows.Add(r.Clone() as DataGridViewRow);
                foreach (DataGridViewCell o in r.Cells)
                {
                    grid_detail.Rows[index].Cells[o.ColumnIndex].Value = o.Value;
                }
            }

            }

新しい行を作成することしかできません。ただし、選択した行をフィードしないでください。助けはありますか?

4

3 に答える 3

0

みんな、私は問題を解決しなければなりません。以下のように進めました。

最初に列を複製しました。このためにメソッドを作成しました

  public void change_header()
        {
            DisplayDataGrid();
            grid_detail.Columns.Clear();

            foreach (DataGridViewColumn c in grid_display.Columns)
            {
                grid_detail.Columns.Add(c.Clone() as DataGridViewColumn);
            }
        }

次に、SELECTED 行のみをコピーし、2 番目の datagridview に表示しました (ヘッダー列は既に複製されているため)。現在表示されているデータは表示可能です。

選択した行をどのようにコピーしましたか? ここにあります。

 grid_detail.Rows.Clear(); 
            DataRow[] dRows = new DataRow[grid_display.SelectedRows.Count];
            for (int i = 0; i < grid_display.SelectedRows.Count; i++)
                dRows[i] = ((DataRowView)grid_display.SelectedRows[i].DataBoundItem).Row;
                foreach (DataRow dgvRow in dRows)
                {
                    grid_detail.Rows.Insert(0, dgvRow.ItemArray);
                }
                grid_detail.Refresh();

ここで、grid_display は完全なデータを含む dgv であり、grid_detail は選択された行のみを含む dgv です。ありがとう。

于 2013-08-20T05:07:23.070 に答える
-1

grid_display がクエリ (MySQL など) から取得されたデータである場合、できることはクエリをやり直すことですが、クエリを具体的にして、結果のデータが grid_display からセルをクリックしたときに選択したものと同じになるようにすることです。 ...次に、結果を grid_detail に入れます。

これはあなたができると思う1つの解決策です...しかし、クエリを作成しているため、一度に複数の転送を行うことはできません...

それが役立つことを願っています... :D

于 2014-05-12T09:32:43.007 に答える