从其他表单添加列表视图项(使用对象)

本文关键字:对象 视图 其他 表单 添加 列表 | 更新日期: 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。这种方法只基于对象,而不是委托。如你所愿。: -)