2010-11-12 7 views
0

EXACT дубликат Datagrid View Button repeatDatagrid View Кнопка повторяет

Я добавлена ​​кнопка для 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"); 


      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]; 
       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 
+0

** EXACT ** дубликат [Повтор кнопки просмотра Datagrid] (http://stackoverflow.com/questions/4167136/datagrid-view-button-repeat) –

ответ

1

Split метод надвое:

1.) Для настройки структуры сетки.) Для добавления новых строк

public void SetupDataGridView() 
{ 
      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"); 

      UsersView.DataSource = table; 
      UsersView.AllowUserToAddRows = false;//To remove extra row at the end 
      UsersView.Columns.Add(bcol); 
} 

public void PopulateDataGridView() 
{ 

      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]; 
       table.Rows.Add(row); 
      } 

} 

И это еще неоптимальное подход, но это самый любой человек может сделать для кого-то с вашими навыками.

Вам не хватает базовых знаний о программировании и объектно-ориентированном программировании в частности. Получите книгу (например, книгу chris продает книгу по программированию окон), прочитайте ее, а затем вернитесь. Вы выиграете от этого!

+0

Сокол? Больше похоже на Blue Falcon. –

+0

@ Jamie L. lol, синий сокол для того, чтобы говорить правду. – Falcon

+0

Я полагаю. Хороший ответ в любом случае. –

Смежные вопросы