我想显示一个带有listView的新表单,在这个listView中我想显示删除记录(来自查询),如果有人需要更多信息,我可以提供。
此时,我将要删除的记录填充到一个列表中,并调用另一个表单中的 locate 函数来显示 listView。
public partial class Documento : MaterialForm
{
private void button1_Click(object sender, EventArgs e)
{
using (adAcerosOPEntities dbLocal = new adAcerosOPEntities())
{
String qDocumento = "";
var remisiones = (dbLocal.Database.SqlQuery<datosConsulta>(qDocumento)).ToList();
List<Documento> listDato = new List<Documento>();
foreach (var x in remisiones)
{
listDato.Add(new Documento { idRem = x.CIDDOCUMENTO });
listDato.Add(new Documento { serie = x.CSERIEDOCUMENTO });
listDato.Add(new Documento { folio = x.CFOLIO });
listDato.Add(new Documento { cliente = x.CCODIGOCLIENTE });
listDato.Add(new Documento { fecha = x.CFECHA });
}
msgRemisiones ms = new msgRemisiones();
ms.DialogResult(listDato);
}
}
}
这是我的Form2,我可以访问列表中的数据。 问题是当表单显示时,它会显示 ListView 但为空。我不知道问题出在哪里。我遵循了教程。
public partial class msgRemisiones : MaterialForm
{
public void DialogResult(List<Documento> doc)
{
msgRemisiones ms = new msgRemisiones();
tbRemisiones.View = View.Details;
foreach (var v in doc)
{
ListViewItem lv = new ListViewItem(v.idRem.ToString());
lv.SubItems.Add(v.serie);
lv.SubItems.Add(v.folio.ToString());
lv.SubItems.Add(v.cliente);
lv.SubItems.Add(v.fecha);
tbRemisiones.Items.Add(lv);
}
ms.Show();
}
}
答案 0 :(得分:1)
我开始尝试使用您的代码,但它非常令人困惑。
这是我通常用来在表单中填充列表控件的模式。
首先,填充列表。
List<Documento> listDato = new List<Documento>();
using (adAcerosOPEntities dbLocal = new adAcerosOPEntities())
{
String qDocumento = "";
var remisiones = (dbLocal.Database.SqlQuery<datosConsulta>(qDocumento)).ToList();
foreach (var x in remisiones)
{
listDato.Add(new Documento {
idRem = x.CIDDOCUMENTO,
serie = x.CSERIEDOCUMENTO,
folio = x.CFOLIO,
cliente = x.CCODIGOCLIENTE,
fecha = x.CFECHA
});
}
}
然后创建表单。将列表数据作为参数传递给表单构造函数。
msgRemisiones ms = new msgRemisiones(listDato);
显示表格。
ms.Show();
表格看起来像这样。
public partial class msgRemisiones : MaterialForm
{
private List<Documento> listDato;
public msgRemisiones(List<Documento> listDato)
{
this.listDato = listDato;
}
// Populate the list control in the Form Load event.
private void Form1_Load(object sender, System.EventArgs e)
{
foreach (Documento v in this.listDato)
{
ListViewItem lv = new ListViewItem(v.idRem.ToString());
lv.SubItems.Add(v.serie);
lv.SubItems.Add(v.folio.ToString());
lv.SubItems.Add(v.cliente);
lv.SubItems.Add(v.fecha);
tbRemisiones.Items.Add(lv);
}
}