Datagrid视图按钮重复

时间:2010-11-12 17:01:53

标签: c# datagridview button

我已经向datagrid视图添加了按钮,但是当多次调用该函数时,新按钮添加我需要停止此添加

  void AddtoGrid()
    {
        try
        {                
            table = new DataTable();
            bcol = new DataGridViewButtonColumn();
            bcol.HeaderText = "Action ";
            bcol.Text = "Delete";
            bcol.Name = "deleteUserButton";
            bcol.UseColumnTextForButtonValue = true;                

            table.Columns.Add("Name");
            table.Columns.Add("Type");
            table.Columns.Add("Status");
            table.Columns.Add("Date Created");
            table.Columns.Add("Action");
            for (int i = 0; i < userAction.UserName.ToArray().Length; i++)
            {
                row = table.NewRow();
                asc.Add(userAction.UserName[i]);
                row["Name"] = userAction.UserName[i];
                row["Type"] = userAction.UserType[i];
                row["Status"] = userAction.UserStatus[i];
                row["Date Created"] = userAction.DateCrea[i];
                row["Action"] = bcol.Text;
                table.Rows.Add(row);
            }

            UsersView.DataSource = table;
            UsersView.AllowUserToAddRows = false;//To remove extra row at the end
            UsersView.Columns.Add(bcol);
        }
        catch (Exception ca)
        {
            MessageBox.Show(ca.ToString());
        }
    }//End Function for Getting Present Users

1 个答案:

答案 0 :(得分:1)

我不太确定我理解你的问题,尽管我认为你需要将新列的创建封装到它自己的方法中并且只调用一次 - 例如在构造函数中。

例如:

void CreateDeleteColumn()
{            
    bcol = new DataGridViewButtonColumn();
    bcol.HeaderText = "Action ";
    bcol.Text = "Delete";
    bcol.Name = "deleteUserButton";
    bcol.UseColumnTextForButtonValue = true;

    UsersView.Columns.Add(bcol);
}

这应该会在每次填充列表视图时停止添加列。

如果我误解了,希望这会有所帮助和抱歉。