Pergunta

Eu encontrei perguntas semelhantes sobre SO já, todo o líquido na verdade. Embora eu não tenha encontrado uma resposta funcionando ainda.

Então, eu estou trabalhando em um windows formulário de inscrição usando o Visual Studio 2008. A linguagem é C #

Eu tenho um DataGridView que é não ligado a uma fonte de dados.

forma:

MyDataGridView.DataSource = null;

não vai funcionar ...

Eu também tentei

MyDataGridView.Rows.Clear();

Mas isso remove todos os meus personalizados feitos linhas.

Então, agora estou procurando uma maneira de simplesmente esvaziar o conteúdo de todas as células (não incluindo células de cabeçalho). Por isso não deve afetar qualquer outra coisa, mas o conteúdo das células em si.

Foi útil?

Solução 2

Eu só descobri como fazer isso sozinho, eu simplesmente ciclo através da mesa, limpando todas as células I encontro.

Nota: "dgUsers" é o nome do meu DataGridView

for (int i = 0; i < dgUsers.Columns.Count ;i++ )
      {
          for (int j = 0; j < dgUsers.Rows.Count; j++)
          {
               dgUsers.Rows[j].Cells[i].Value = "";
          }
      }

Eu aposto que há uma maneira melhor de fazer isso e isso pode parecer um pouco desleixado, mas ele faz o trabalho. No entanto, eu gostaria de ouvir uma solução melhor que apura os dados.

Outras dicas

for (int i = 0; i < MyDataGridView.Columns.Count ;i++ )
  {
      for (int j = 0; j < MyDataGridView.Rows.Count; j++)
      {
           MyDataGridView.Rows[j].Cells[i].Value = DBNull.Value;
      }
  }

O código por não funcionavam pieter888 trabalhou para mim o código eu descobri era

int cnt=dataGridView1.Rows.Count;
        for (int i = 0; i < cnt; i++)
        {
            dataGridView1.Rows.Remove(dataGridView1.Rows[0]);
        } 

Eu acredito que o uso de LINQ você pode torná-lo mais limpo, especialmente com os tipos implícitos:

    foreach (var cell in from DataGridViewRow row in dgv.Rows from DataGridViewCell cell 
    in row.Cells select cell){
        cell.Value = string.Empty;
     }

você pode limpar toda a grade usando

gridviewname.columns.clear();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top