0

こんにちは、選択した datagridview 行を別の datagridview に追加しようとしています。

私はmanオブジェクトクラスを使用しています。これが私のクラスです。

 class Man
{
    private string _name;
    public string name
    {

        set { _name = value; }
        get { return _name; }

    }

    private string _address;
    public string address
    {
        set { _address = value; }
        get { return _address; }

    }
}

ここに 2 つのリストがあります。

    List<Man> people= new List<Man>();
    List<Man> people2 = new List<Man>();
    public string tempname;

行クリック イベントのコード全体を次に示します。

    private void dataGridView1_Click(object sender, EventArgs e)
    {
        foreach (DataGridViewRow row in dataGridView1.SelectedRows)
        {
            Man manobj = new Man();

            manobj.name = Convert.ToString(row.Cells[0].Value);
            tempname = Convert.ToString(row.Cells[0].Value);
            manobj.address= Convert.ToString(row.Cells[1].Value);

            //Adding the man object
            people2.Add(manobj);
            BindingSource manbind2= new BindingSource();
            manbind2.DataSource = people2;
            dataGridView2.DataSource = manbind2;
            dataGridView1.Rows.RemoveAt(row.Index);

            for (int i = 0; i < people.Count; i++)
            {
                Man tempman = people[i] as Man;
                if (tempman.name == tempname)
                {
                    people.Remove(tempman);
                }
            }

        }
    }

時々クリックすると、このエラーメッセージが表示されます。

DataGridView で以下の例外が発生しました。

System.indexOutOfRangeException:Index 0 に値がありません System.Windows.Forms.CurrencyManager.get_Item(Int32index)at System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetError(Int32rowIndex) この既定のダイアログを置き換えるには、データ エラー イベントを処理してください.

セルが1つずつ空になり、常にエラーメッセージが表示されます。誰かがそれを修正する方法を教えてもらえますか?

4

0 に答える 0