MOVER CELLS ENTRE 2 DATAGRIDVIEW
olá pessoal,
tem algum exemplo que pode ajudar de como faço para mover as colunas selecionadas de um datagrid para outro ?
estou tentado pegar desde a collections
porem ele não está chegando aqui
se tiver algum exemplo que possa ajudar agradeço.
tem algum exemplo que pode ajudar de como faço para mover as colunas selecionadas de um datagrid para outro ?
estou tentado pegar desde a collections
DataGridViewSelectedCellCollection dgvColecaoCelulasSelecionadas = datagridview1.SelectedCells;
porem ele não está chegando aqui
DataGridViewSelectedCellCollection dgvColecaoCelulasSelecionadas = (DataGridViewSelectedCellCollection)drgevent.Data.GetData(typeof(DataGridViewSelectedCellCollection));
se tiver algum exemplo que possa ajudar agradeço.
Um DataGridView é um conjunto de dados. Cada coluna, representa uma propriedade desses dados. Para fazer o que voce quer, voce precisa criar o conjunto de dados modelado da maneira que quer.
Como o que voce quer é "mover colunas", voce precisa criar o conjunto de dados equivalente. Uma maneira de fazer isso é criar um tipo anÃ'nimo, contendo propriedades equivalentes às colunas selecionadas.
Essa é uma operação bastante estranha, geralmente o que se quer é selecionar LINHAS e move-las para outro datagrid...
Como o que voce quer é "mover colunas", voce precisa criar o conjunto de dados equivalente. Uma maneira de fazer isso é criar um tipo anÃ'nimo, contendo propriedades equivalentes às colunas selecionadas.
Essa é uma operação bastante estranha, geralmente o que se quer é selecionar LINHAS e move-las para outro datagrid...
Se for isso que voce quer, é muito simples. Veja o exemplo anexo.
Citação::
Um DataGridView é um conjunto de dados. Cada coluna, representa uma propriedade desses dados. Para fazer o que voce quer, voce precisa criar o conjunto de dados modelado da maneira que quer.
Como o que voce quer é "mover colunas", voce precisa criar o conjunto de dados equivalente. Uma maneira de fazer isso é criar um tipo anÃ'nimo, contendo propriedades equivalentes às colunas selecionadas.
Essa é uma operação bastante estranha, geralmente o que se quer é selecionar LINHAS e move-las para outro datagrid...
Bom, neste caso o que eu trabalho é dinâmico, isso quer dizer que vou depender muito dos dados que vai ter na planilha do excel, tem momentos que vai ter registros de 3 column e em outro momento vai ter mais de 300 colunas e sucessivamente, por isso estou usando a DataGridViewColumnCellCollection, ao momento de carregar na grid ele faz a leitura da primeira linha e divide ela em colunas
o que eu tenho dificuldade não é nas linhas, eu consigo mover elas de um datagrid a outro, o problema que tenho é nas colunas que eu preciso separar,
claro ficaria mais fácil de eu usar um banco dados, mais no caso não é necessário só quero que esse dados sejam aplicadas ao calculo por colunas separadas. e ele resumir pra mim o analise.
exemplo: preciso que a coluna A seja agrupado com outra coluna X e assim sucessivamente
Ah bom, voce não tinha explicado que se trata de uma planilha de excel...
Faça uma picklist com os nomes das colunas. Pode ser listar elas com um checkbox.
Faça uma picklist com os nomes das colunas. Pode ser listar elas com um checkbox.
Citação::
Ah bom, voce não tinha explicado que se trata de uma planilha de excel...
Faça uma picklist com os nomes das colunas. Pode ser listar elas com um checkbox.
vlw consegui
DataGridViewSelectedColumnCollection Colunas_Selecionadas = (DataGridViewSelectedColumnCollection)drgevent.Data.GetData(typeof(DataGridViewSelectedColumnCollection));
if (Colunas_Selecionadas != null)
{
if (Colunas_Selecionadas.Count > 0)
{
for (int C = 0; C <= Colunas_Selecionadas.Count - 1; C++)
{
var Nome = Colunas_Selecionadas[0].DataGridView?.Columns[Colunas_Selecionadas[C].Index].HeaderText;
var Titulo = Colunas_Selecionadas[0].DataGridView?.Columns[Colunas_Selecionadas[C].Index].Name;
DgvDados.Columns.Add(Nome, Titulo);
}
for (int R = 0; R <= Colunas_Selecionadas[0].DataGridView?.Rows.Count - 2; R++)
{
DgvDados.Rows.Add();
}
for (int R = 0; R <= Colunas_Selecionadas[0].DataGridView?.Rows.Count - 2; R++)
{
for (int C = 0; C <= Colunas_Selecionadas.Count - 1; C++)
DgvDados.Rows[R].Cells[C].Value = Colunas_Selecionadas[C].DataGridView?.Rows[R].Cells[Colunas_Selecionadas[C].Index].Value;
}
}
}
Tópico encerrado , respostas não são mais permitidas