C# Datagrid视图按钮重复

C# Datagrid视图按钮重复,c#,datagridview,button,C#,Datagridview,Button,我已经在datagrid视图中添加了按钮,但是当函数被多次调用时,new button添加后,我需要停止此添加 void AddtoGrid() { try { table = new DataTable(); bcol = new DataGridViewButtonColumn(); bcol.HeaderText = "Action ";

我已经在datagrid视图中添加了按钮,但是当函数被多次调用时,new button添加后,我需要停止此添加

  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
void AddtoGrid()
{
尝试
{                
table=新数据表();
bcol=新的DataGridViewButtonColumn();
bcol.HeaderText=“操作”;
bcol.Text=“删除”;
bcol.Name=“deleteUserButton”;
bcol.UseColumnTextForButtonValue=true;
表.列.添加(“名称”);
表.列.添加(“类型”);
表.列.添加(“状态”);
表.列.添加(“创建日期”);
表.列.添加(“操作”);
for(int i=0;i
我不太确定我是否理解您的问题,尽管我相信您需要将新列的创建封装到它自己的方法中,并且只调用一次—例如在构造函数中

例如:

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

    UsersView.Columns.Add(bcol);
}
这将阻止它在每次填充列表视图时添加列

希望这有帮助,如果我误解了,请原谅

托尼