为啥  我 DataGridView ImageResdataGridView2; ImageResdataGridView2.Rows.Add(1);然后  调用 add方法 里面原来数据就被清空了。。我是想在程序里添加一行!

解决方案 »

  1.   

    是在现有datagridview里面添加新行吗?
      

  2.   

    恩 是的。。添加后 原来行的数据自动变为空了。              if (ImageResdataGridView2.RowCount < id+1)
                {
                    ImageResdataGridView2.Rows.Add(1);
                }            {
                    ImageResdataGridView2[0, id].Value = index;
                    ImageResdataGridView2[1, id].Value = pic.Width;
                    ImageResdataGridView2[2, id].Value = pic.Height;
                    ImageResdataGridView2[3, id].Value = pic.Palette;
                    ImageResdataGridView2[4, id].Value = path;
                }
    是不是跟后面的代码有关系 每次程序执行完 ImageResdataGridView2.Rows.Add(1);这行 
    ImageResdataGridView2[x, 0] 就是空的
      

  3.   

    在数据绑定之前插入一个空行DataTable.Rows.insertat(DataTable.NewRow,位置),然后再绑定。 
    直接DataTable.Rows.Add(DataTable.NewRow)就是在最后一行加入一个空白行
      

  4.   

    绑定之前添加!要么就在dataTable里面添加一行空数据!!再绑定!!
      

  5.   

    如果是这样,我建议你使用ListView
      

  6.   

    我知道问题,他只是把行添加到最前面了。我想让他add出来的行在最后面
      

  7.   

    不太理解,你直接
    ImageResdataGridView2.Rows.Add(); 添加行,
    再添加数据不就得了
    ImageResdataGridView2.Rows[0].Cell[0].Value=1;
      

  8.   

    如果没有AllowUserToAddRows = false; 
    RowCount要+1,有一条新建的
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace WindowsFormsApplication21
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();            DataGridView DGV = new DataGridView();
                DGV.Parent = this;
                DGV.Columns.Add("c1", "c1");
                DGV.Columns.Add("c2", "c2");            DGV.AllowUserToAddRows = false;             for (int i = 0; i < 3; i++)
                    DGV.Rows.Add(new Object[] { i, i * i });            int id = 3;            if (DGV.RowCount < id + 1)
                {
                    DGV.Rows.Add(1);
                }            DGV[0, id].Value = 111;
                DGV[1, id].Value = 222;
            }
        }
    }
      

  9.   

    我现在 第一次add 他会添加  Rows[0]这行  以后添加都是 Rows[1] 这行 
    很郁闷。!!!!!!就是说 
                  if (ImageResdataGridView2.RowCount < id+1) 
                { 
                    ImageResdataGridView2.Rows.Add(1); 
                } 
                      ImageResdataGridView2[0, 0].Value = index; 
                    ImageResdataGridView2[1, 0].Value = pic.Width; 
                    ImageResdataGridView2[2, 0].Value = pic.Height; 
                    ImageResdataGridView2[3, 0].Value = pic.Palette; 
                    ImageResdataGridView2[4, 0].Value = path;     
    无限执行这段代码有2行有内容,第0行跟最后一行!!!!!谁能解释下  谢谢啦!!!
    谁能站内m我下 我发运行结果 破论坛不能贴图!
      

  10.   

    谢谢。。搞定了。。 
    DGV.AllowUserToAddRows = false;