none
dataGridView 显示数据的问题 RRS feed

  • 问题

  • int i = 0;
    private void button2_Click(object sender, EventArgs e)
        { 
          if (listBox1.SelectedItems.Count > 0)
          {
            
            Process[] process = Process.GetProcessesByName(listBox1.SelectedItem.ToString());
            
            dataGridView1.Rows.Add(1); //增加一个新行
            dataGridView1.Rows[i].Cells[0].Value = process[0].ProcessName;
            dataGridView1.Rows[i].Cells[1].Value = dateTimePicker1.Value.ToString("yyyy/MM/dd HH:mm:ss");
            array.Add(dataGridView1.Rows[i].Cells[1].Value);
            i++;
          } 
        }
    

    以上代码是: 按下按钮时会在dataGridView1的第二行开始插入数据,在按一下会在第三行插入... 并且每一行都显示数据.

    但是,如果把int i=0;改为int i=1;  

    只会在最后一行插入数据,其他行的数据都清空了.

    为什么会这样?

    2010年11月27日 6:15

答案

  • 您好

    因為您的 i 與 新增的 Rows Index 位置不同,參考以下程式碼看看

        private void button2_Click(object sender, EventArgs e)
        {
          Process[] process = Process.GetProcessesByName(listBox1.SelectedItem.ToString());
    
          dataGridView1.Rows.Add(1); //增加一个新行
           dataGridView1.Rows[dataGridView1.NewRowIndex - 1].Cells[0].Value = process[0].ProcessName;
          dataGridView1.Rows[dataGridView1.NewRowIndex - 1].Cells[1].Value = dateTimePicker1.Value.ToString("yyyy/MM/dd HH:mm:ss");
          array.Add(dataGridView1.Rows[dataGridView1.NewRowIndex - 1].Cells[1].Value);
        }
    

    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 a48625a 2010年11月28日 11:39
    2010年11月28日 7:31