1

我已经详尽地研究(谷歌搜索)了这个问题的解决方案,但找不到。我的问题是,在 Form1 中选择一行(为清楚起见称为)时,它不会将值传输到DataGridViewForm2 中。请注意,所有列标题都已转移。

这是Form1的一个片段:

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

        orderform.Row = this.customersDataGridView.CurrentRow;

        orderform.MdiParent = this.MdiParent;

        orderform.Show();
    }

和表格2:

        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在 Form2 中显示 Form1 的行值DataGridView

我觉得在插入列后我错过了添加实际值的步骤,但我被困在这一点上。

4

1 回答 1

0

最好有一个 OrderSearchForm 的构造器来保存行的值。

考虑 Row 有 3 个值,例如 ID、姓名、年龄

使用这些 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();

和表格2:

   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 回答