现有4条数据,这4条数据不绑定数据,而用手动输入4条
例:
1
2
3
4
选择第2条数据删除 Main_SalesList.Rows.RemoveAt(Main_SalesList.SelectedRows[0].Index)为什么会删除两条数据 2和3删除了,1和4数据还在

解决方案 »

  1.   

    我测试好使厄不过我用的是 FullRowSelect
    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    另外,你不是在 SelectionChanged 时候删除的吧?
    private void button1_Click(object sender, EventArgs e)
    {
        dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
    }private void Form1_Load(object sender, EventArgs e)
    {
        dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    }
      

  2.   

    Main_SalesList.Rows.Remove(Main_SalesList.CurrentRow)
      

  3.   


    这是我的代码
     private void Main_SalesList_KeyDown(object sender, KeyEventArgs e)
            {
               
                if (e.KeyCode == Keys.Down)
                {
                    Main_SalesList.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                    i = Main_SalesList.CurrentCell.RowIndex;
                }            if (e.KeyCode == Keys.Up)
                {
                    Main_SalesList.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                    i = Main_SalesList.CurrentCell.RowIndex;            }
                if (e.KeyCode == Keys.Delete)
                {
                    if (Main_SalesList.SelectedRows.Count > 0 && Main_SalesList.SelectedRows[0].Index != Main_SalesList.Rows.Count - 2)
                    {
                        Main_SalesList.Rows.RemoveAt(Main_SalesList.SelectedRows[0].Index);
                    }
                }
                
            }
      

  4.   

    如果从最一行删除不会出错,从dataGridView中选择任一条数删除就会两条数据
      

  5.   

    index会变化   注意没?
      

  6.   


    不过 不是这个原因好像 
    msdn上的例子
            private void deleteRowButton_Click(object sender, EventArgs e)
            {
                if (this.songsDataGridView.SelectedRows.Count > 0 &&
                    this.songsDataGridView.SelectedRows[0].Index !=
                    this.songsDataGridView.Rows.Count - 1)
                {
                    this.songsDataGridView.Rows.RemoveAt(
                        this.songsDataGridView.SelectedRows[0].Index);
                }
            }