MOVER CELLS ENTRE 2 DATAGRIDVIEW

COQUITO 13/10/2022 22:27:00
#500578
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
  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.
KERPLUNK 14/10/2022 12:38:56
#500581
Resposta escolhida
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...
KERPLUNK 14/10/2022 12:48:37
#500582
Se for isso que voce quer, é muito simples. Veja o exemplo anexo.
COQUITO 15/10/2022 09:26:30
#500599
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



KERPLUNK 15/10/2022 17:25:56
#500601
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.
COQUITO 17/10/2022 10:22:07
#500607
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