在listview上双击弹出一个窗体,在弹出的这个窗体可以显示listview行的信息,并可以对这些数据进行修改和删除,怎么让我在窗体上修改了之后,立刻在listview上显示呢

解决方案 »

  1.   

    listview绑定一个数据源你在弹出的窗体操作修改和删除后,更新这个数据源
    listview也会同步更新的
      

  2.   

    private   void   listView1_DoubleClick(object   sender,   System.EventArgs   e) 

    ListViewItem  item=listView1.SelectedItems[0]; 
    }
      

  3.   

    this.lvProduct.BeginUpdate();
                this.lvProduct.Clear();          
                //list = ServiceHelper.GetAllProducts();
                this.lvProduct.Columns.Add("ID", 40, HorizontalAlignment.Center);
                this.lvProduct.Columns.Add("用品名称", 80, HorizontalAlignment.Center);
                this.lvProduct.Columns.Add("品牌分类", 80, HorizontalAlignment.Center);
                this.lvProduct.Columns.Add("生命阶段", 80, HorizontalAlignment.Center);
                this.lvProduct.Columns.Add("产地", 80, HorizontalAlignment.Center);
                this.lvProduct.Columns.Add("乐宠货号", 80, HorizontalAlignment.Center);
                this.lvProduct.Columns.Add("价格", 80, HorizontalAlignment.Center);
                this.lvProduct.Columns.Add("体型", 80, HorizontalAlignment.Center);
               
                foreach (ProductManagementService.ProductInfo pinfo in list)
                {
                    ListViewItem item = new ListViewItem();
                    item.Text = pinfo.Id.ToString();
                    item.SubItems.Add(pinfo.Name.ToString());
                    //所属品牌                
                    int bid = Convert.ToInt32(pinfo.BrandId);
                    ProductManagementService.BrandInfo binfo = ser.GetBrandModel(bid);
                    if (binfo != null)
                    {
                        item.SubItems.Add(binfo.Name.ToString());
                    }
                    else { item.SubItems.Add(string.Empty); }
                    //生命阶段                
                    //产地                
                    int did = Convert.ToInt32(pinfo.LifeStageId);
                    //ProductManagementService.DictionaryInfo dinfo = ser.GetDictionarysModel(did);
                    ProductManagementService.DictionaryInfo dinfo = ServiceHelper.GetDictionaryInfo(did);
                    if (dinfo != null)
                    {
                        item.SubItems.Add(dinfo.Name);
                    }
                    else
                    {
                        item.SubItems.Add(string.Empty);
                        item.SubItems.Add(string.Empty);
                    }
                    int dictid = Convert.ToInt32(pinfo.ProducingArea);
                    //ProductManagementService.DictionaryInfo dictinfo = ser.GetDictionarysModel(dictid);
                    ProductManagementService.DictionaryInfo dictinfo = ServiceHelper.GetDictionaryInfo(dictid);
                    if (dictinfo != null)
                    {
                        item.SubItems.Add(dictinfo.Name);
                    }
                    else
                    {
                        item.SubItems.Add(string.Empty);
                        item.SubItems.Add(string.Empty);
                    }
                    item.SubItems.Add(pinfo.LeepetSN.ToString());
                    item.SubItems.Add(pinfo.Price.ToString());
                    //item.SubItems.Add(pinfo.BodyType.ToString());
                    int dicid = Convert.ToInt32(pinfo.BodyType);
                    //ProductManagementService.DictionaryInfo dicinfo = ser.GetDictionarysModel(dicid);
                    ProductManagementService.DictionaryInfo dicinfo = ServiceHelper.GetDictionaryInfo(dicid);
                    if (dicinfo != null)
                    {
                        item.SubItems.Add(dicinfo.Name.ToString());
                    }                lvProduct.Items.Add(item);
                }            lvProduct.GridLines = true;
                lvProduct.View = View.Details;
                lvProduct.EndUpdate();
      

  4.   


    if(this.listview.selecteditems.count>0{
    int id =convert.toint32(listview.items[0].subitems[0].tostring());
    }
    上面可以获取到你选中的listview的项的id  根据这个id可以传递给你的第二个窗体  然后进行一些里操作,上面那个是绑定数据源,你没修改一次 调用那个方法一下  它就会重新绑定数据源一次
      

  5.   

    没有那么麻烦吧,建议你看一下窗体传值方面的代码
    把ListView对像作为参数传给子窗体,然后在子窗体中就可以直接更新父窗体中的数据了
      

  6.   

    将.listView1 的Modifiers 设置为public//在form1中
     private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.form1 = this;
                frm.Show();
               
            }//form2中
    public Form1 form1;
    private void button1_Click(object sender, EventArgs e)
    {
        form1.listView1.Items.Add(....);//这里就可以就listview操作了
    }