从其他表单添加列表视图项(使用对象)
本文关键字:对象 视图 其他 表单 添加 列表 | 更新日期: 2023-09-27 18:10:24
我想获得一些数据来填充一个listview控件,但这个数据是在其他形式确定的。这是我在form1 (nuevo_credit)中编写的代码:
private void combo_cliente_SelectionChangeCommitted(object sender, EventArgs e)
{
Credito_Grupo ventana = new Credito_Grupo(combo_cliente.SelectedItem);
ventana.ShowDialog();
}
public void AgregaIntegrantes(string id, string nombre, string monto)
{
ListViewItem elem = new ListViewItem(id);
elem.SubItems.Add(nombre);
elem.SubItems.Add(monto);
listView_integrantes.Items.Add(elem);
}
我调用form2 (Credito_grupo)作为显示对话框窗口,然后我想检索一些值,并使用公共方法"AgregaIntegrantes"将它们传递给Form1。在form2中,我做了如下操作:
public Credito_Grupo(dynamic item)
{
this.id = item.IDCliente;
this.nombre = item.NomComp;
InitializeComponent();
}
private void Credito_Grupo_Load(object sender, EventArgs e)
{
text_nombre.Text = this.nombre;
}
private void button_AgregaCliente_Click(object sender, EventArgs e)
{
Nuevo_Credito obj = new Nuevo_Credito();
obj.AgregaIntegrantes(id.ToString(), nombre, text_monto.Text);
this.Close();
}
当事件button_AgregaCliente_click被触发时,我需要使用上述方法将数据添加到form1中的listview,但没有添加任何数据。我找到了一个解决方案使用委托这里3077677,有一个方法使用对象?
在button_AgregaCliente_Click方法(清单中的最后一个)中有一个错误。在那里创建一个新的nuevo_creditto表单,并将数据传递给listview。看起来不错。但是这个新创建的nuevo_creditto表单确实只存在于局部变量中,所以当button_AgregaCliente_Click完成时,您可以丢弃它而不显示它。
我认为你需要删除这一行:Nuevo_Credito obj = new Nuevo_Credito();
你需要得到你真正的nuevo_creditto表单,而不是在这里创建一个新的。
你可以从你的nuevo_creditto发送this
到Credito_Grupo表单的构造函数。然后可以使用它回调原始的nuevo_creditto。这种方法只基于对象,而不是委托。如你所愿。: -)