Compartilhar via


Usando a linha para novos registros em que o controle DataGridView do Windows Forms

Quando você usa um DataGridView para edição de dados em seu aplicativo, você freqüentemente desejará dar aos usuários a capacidade de adicionar novas linhas de dados para o armazenamento de dados. O DataGridView controle suporta esta funcionalidade, fornecendo uma linha para novos registros, que sempre é mostrada como a última linha. Ele é marcado com um símbolo de asterisco (*) em seu cabeçalho de linha. As seções a seguir discutem algumas das coisas que você deve considerar quando o programa com a linha para novos registros habilitado.

Exibindo a linha para novos registros

Use o AllowUserToAddRows propriedade para indicar se a linha para novos registros é exibida. O valor padrão dessa propriedade é true.

Para os dados ligados caso, a linha para novos registros será mostrada se o AllowUserToAddRows propriedade do controle e o IBindingList.AllowNew a propriedade da fonte de dados são ambos true. Se uma for false a linha não será mostrada.

Preenchendo a linha para novos registros com os dados padrão

Quando o usuário seleciona a linha para novos registros, como a linha atual, o DataGridView controle gera a DefaultValuesNeeded de evento.

Esse evento fornece acesso à nova DataGridViewRow e permite que você preencher a nova linha com padrão de dados. Para mais informações, consulte: Como: Especificar valores padrão para novas linhas no controle do Windows Forms DataGridView.

A coleção Rows

A linha para novos registros está contida na DataGridView do controle Rows coleção mas vária em dois aspectos:

  • A linha para novos registros não pode ser removida do Rows coleção programaticamente. Um InvalidOperationException é lançada se isso é tentado. O usuário também não é possível excluir a linha para novos registros. O DataGridViewRowCollection.Clear método não removerá esta linha da Rows coleção.

  • Nenhuma linha pode ser adicionada depois da linha para novos registros. Um InvalidOperationException é gerado se isso é tentado. Como resultado, a linha para novos registros é sempre a última linha de DataGridView de controle. Os métodos em DataGridViewRowCollection que adicionar linhas —Add, AddCopy, e AddCopies— todas chamam métodos de inserção internamente quando a linha para novos registros está presente.

Personalização Visual da linha para novos registros

Quando a linha para novos registros é criada, ele se baseia a linha especificada pela RowTemplate propriedade. Os estilos de célula não forem especificados para esta linha são herdados de outras propriedades. Para obter mais informações sobre herança de estilo de célula, consulte Estilos de célula em que o controle DataGridView do Windows Forms.

Os valores iniciais exibidos pelas células na linha para novos registros são recuperados de cada célula DefaultNewRowValue propriedade. Para as células do tipo DataGridViewImageCell, essa propriedade retorna uma imagem de espaço reservado. Caso contrário, essa propriedade retornará null. Você pode substituir essa propriedade para retornar um valor personalizado. No entanto, esses valores iniciais podem ser substituídos por um DefaultValuesNeeded o manipulador de eventos quando o foco entra na linha para novos registros.

Os ícones padrão para o cabeçalho da linha, que são uma seta ou um asterisco, não estão expostos publicamente. Se você desejar personalizar os ícones, você precisará criar uma personalizada DataGridViewRowHeaderCell classe.

Os ícones padrão é usar o ForeColor propriedade da DataGridViewCellStyle em uso por célula de cabeçalho de linha. Os ícones padrão não são processados se não houver espaço suficiente para exibi-los completamente.

Se a célula de cabeçalho de linha tem um valor de seqüência de caracteres definido e se não houver espaço suficiente para o texto e o ícone, o ícone é colocado primeiro.

Classificação

No modo não acoplado, novos registros serão sempre adicionados ao final da DataGridView , mesmo se o usuário tem classificados o conteúdo da DataGridView. O usuário precisará aplicar a classificação novamente para classificar a linha na posição correta; Esse comportamento é semelhante do ListView de controle.

Nos dados modos acoplados e virtuais, o comportamento de inserção quando é aplicada a uma classificação dependerá da implementação do modelo de dados. Para ADO.NET, a linha imediatamente é classificada na posição correta.

Outras anotações na linha para novos registros

Não é possível definir o Visible a propriedade desta linha para false. Um InvalidOperationException é gerado se isso é tentado.

A linha para novos registros sempre é criada em um estado desmarcado.

Modo virtual

Se você estiver implementando o modo virtual, você precisará controlar quando uma linha para novos registros sejam necessários no modelo de dados e quando reverter a adição da linha. A implementação exata essa funcionalidade depende da implementação do modelo de dados e sua semântica de transação, por exemplo, se o escopo de confirmação é no nível de célula ou linha. Para obter mais informações, consulte Modo virtual no Windows Forms DataGridView Control.

Consulte também

Tarefas

Como: Especificar valores padrão para novas linhas no controle do Windows Forms DataGridView

Referência

DataGridView

DataGridView.DefaultValuesNeeded

Outros recursos

Entrada de dados em Windows Forms DataGridView Control