【发布时间】:2018-12-31 19:15:40
【问题描述】:
在进行一些更改后,我有这段代码将多行从 form1“FrmPaint”中的 gridview 传递到 form2“OptionsPaint”,然后将此数据传递给 form1“FrmPaint”中的 gridview2
OptionsPaint OPaint = new OptionsPaint();
private void btnAdd_Click(object sender, EventArgs e)
{
int[] selectedRows = gridView1.GetSelectedRows();
for (int i = 0; i < selectedRows.Length; i++)
{
DataRow rowGridView1 = (gridView1.GetRow(selectedRows[i]) as DataRowView).Row;
if (OPaint == null || OPaint.IsDisposed)
OPaint = new OptionsPaint();
OPaint.Show();
OPaint.bsRepere.Text = rowGridView1["BS"].ToString() + " " + "Repère: " + rowGridView1["Repère"].ToString();
OPaint.quantity.EditValue = rowGridView1["Reste Qté"];
OPaint.OK.Click += (sender1, e1) =>
{
DataRow row = dt.NewRow();
row[0] = rowGridView1["BS"];
row[1] = rowGridView1["Repère"];
row[2] = rowGridView1["Profil"];
row[3] = OPaint.quantity.EditValue;
dt.Rows.Add(row);
OPaint.Close();
};
}
}
当我只选择一行时,代码可以正常工作,但是当我选择多行时 form2“OptionsPaint”仅显示一次,从 from1 中选择 gridview 中的最后一个值。有没有办法停止代码,直到用户单击按钮然后完成其余代码。
【问题讨论】:
-
使用 DataView 几乎是微不足道的,其中底层数据表中的 bool 列控制一行应显示在哪个表单/DGV 中
-
我曾经将此代码与 layoutcontrol 一起使用,并且适用于单行和多行,但是当我使用 form (form2) 时,它们不适用于多行
标签: c# winforms devexpress