1

私はこの問題の解決策を徹底的に調査(グーグル)しましたが、何も見つかりません。DataGridView私の問題は、Form1で行を選択すると(わかりやすくするためにそれと呼ばれます) 、Form2のに値が転送されないことです。念のために言っておきますが、すべての列ヘッダーが転送されます。

これがForm1のスニペットです。

        private void customersDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        OrderSearchForm orderform = new OrderSearchForm();

        orderform.Row = this.customersDataGridView.CurrentRow;

        orderform.MdiParent = this.MdiParent;

        orderform.Show();
    }

そしてForm2:

        private DataGridViewRow row;

    public DataGridViewRow Row
    {
        get { return row; }
        set { row = value; }
    }

    private void OrderSearchForm_Load(object sender, EventArgs e)
    {
        NorthwindDataClassesDataContext db = new NorthwindDataClassesDataContext();

        DataGridViewRow r = row.Clone() as DataGridViewRow;

        foreach (DataGridViewCell cell in row.Cells)
        {
            this.OrderSearchgridview.Columns.Add(cell.OwningColumn.Name,
                cell.OwningColumn.HeaderText);

            r.Cells[cell.ColumnIndex].Value = cell.Value;
        }

        OrderSearchgridview.Rows.Add(r);
    }

DataGridViewつまり、基本的に、私の質問は、Form1の行の値をForm2の行の値に表示するにはどうすればよいかということDataGridViewです。

列を挿入した後、実際の値を追加する手順が欠落しているように感じますが、この時点で立ち往生しています。

4

1 に答える 1

0

行の値を保持するには、OrderSearchForm のコンストラクターをもう 1 つ用意することをお勧めします。

行にID、名前、年齢などの3つの値があると考えてください

これらの Pramaeteter を使用して OrderSearchForm のオブジェクトを作成します。

 OrderSearchForm orderform = new OrderSearchForm(New User(customersDataGridView.SelectedRows[0].Cells[0].Value.ToString(),SelectedRows[0].Cells[1].Value.ToString(),SelectedRows[0].Cells[2].Value.ToString()));

  orderform.MdiParent = this.MdiParent;

 orderform.Show();

Form2:

   private DataGridViewRow row;
   private User userObj;

public OrderSearchForm(User user)
{
    this.userObj=user;

} 


    public DataGridViewRow Row
    {
        get { return row; }
        set { row = value; }
    }

    private void OrderSearchForm_Load(object sender, EventArgs e)
    {
       //Do Operation with User's Properties.as you Like

        OrderSearchgridview.Rows.Add(r);
    }
于 2012-11-30T09:45:48.103 に答える