将数据行添加到数据网格视图时显示消息框

时间:2014-04-30 01:23:07

标签: c# datagridview datarow

由于我无法发布到上一个问题,我想在此处发布。 这是我的代码,用于将文本框中的数据行添加到datagridview。我想在添加数据行时显示一个消息框。

我的代码有效,但始终没有显示第一条记录的消息框。它显示第6条记录的消息框的5倍,第8条记录的7倍。我在这个窗体中有一个清晰的按钮,当我点击它时,也会显示添加了行的消息,并显示数据网格视图中记录的次数。

任何人都可以在此代码中找到错误。?

这是我的添加按钮代码。

//Add button code
private void btnAdd_Click(object sender, EventArgs e)
{
    try 
    {
        //Create a new row in grid view
        DataGridViewRow row = new DataGridViewRow();

        //Create cells
        row.CreateCells(this.myGrid, txtIdNum.Text, txtFname.Text, txtLname.Text, txtEmail.Text);

        //add to data grid view
        this.myGrid.Rows.Add(row);

        //Throw mygrid_RowsAdded when a row is added.
        myGrid.RowsAdded += new DataGridViewRowsAddedEventHandler(myGrid_RowsAdded);
    }
    catch(Exception xx)
    {
        MessageBox.Show(xx.Message);
    }
}

添加行事件的代码

// Row add event
void myGrid_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
    MessageBox.Show("New record is added..");
    txtIdNum.Text = "";
    txtFname.Text = "";
    txtLname.Text = "";
    txtEmail.Text = "";
}

1 个答案:

答案 0 :(得分:0)

第一次执行btnAdd_Click时,你的事件处理程序没有被执行,因为你在添加行之后设置它...我建议你像这样交换你的两行代码:

myGrid.RowsAdded += new DataGridViewRowsAddedEventHandler(myGrid_RowsAdded);
this.myGrid.Rows.Add(row);

设置事件处理程序的更好的地方是在一些初始化代码中......你这样做会导致为btnAdd按钮上的每次点击获取更多事件......