ORDEM DE SELECAO DO DATAGRIDVIEW

BRUNOMR 26/03/2011 21:42:05
#369314
Boa Noite Pessoal.

Estou tendo um problema ao selecionar varios linhas do Grid.

Quando seleciono todas as linhas do grid (selecionando de cima para baixo) ou seja da primeira linha a ultima as memas não saem na mesma ordem no SelectedCells.

EX: 1° Linha possui o codigo A
2° Linha possui o codigo B
3° Linha possui o codigo C

Usando o MultiSelect seleciono a primeira 1° linha de a 2° e assim por diante.

Quando crio o Objeto para pegar as linhas selecionas e faço um for para percorrer as memas para pegare o conteudo de cada uma, ele me retorna a sequecia errada.

Ex :1° loop me retorna o codigo C
2° loop me retorna o codigo B
3° loop me retorna o codigo A

segue o codigo:

DataGridViewSelectedCellCollection selecionadas = Grid_Cdigo.SelectedCells;

String [] Cdigos = new String [selecionadas.Count];


for (i = 0; i < selecionadas.Count; i++)
{
DataGridViewCell celula = selecionadas[i];

linha = celula.RowIndex;// Linha

Cdigos = Grid_Cdigo.Rows[linha].Cells[3].Value.ToString();

}

Gostaria de saber se existe algum jeito de retornar as celulas selecionadas na ordem do Grid ou seja da primeira até a ultima independente da ordem que eu selecionei as celulas.

VLW!!!
RODRIGOFERRO 27/03/2011 00:09:51
#369324
Eu ja estive apertado e agarrado na mesma situação, e como resolvi ?
criei uma lista(integer) com o index das linhas selecionadas e dei um sort na lista e voalaaaaa... =]

segue um exemplo abaixo !!!



//Evento Click de qualquer botao (Exemplo)
private void button3_Click(object sender, EventArgs e)
{

//Crio a lista de Integer e uma StringBuilder
List<int> myList = new List<int>();
StringBuilder sb = new StringBuilder();

//Para cada linha selecionada eu taco ela na lista
foreach (DataGridViewRow dr1 in this.dataGridView1.SelectedRows)
{
myList.Add(dr1.Index);
}

//Aqui a grande sacada, eu ordeno a numeração usando o SORT
myList.Sort();

//agora para cada item que esta na lista eu exibo o valor dos itens
foreach (int nItem in myList)
{
//Montagem da String
sb.Append([Ô]Linha Selecionada: [Ô]);
sb.Append(this.dataGridView1.Rows[nItem].Index);
sb.Append([Ô] // [Ô]);
sb.Append([Ô]Valor encontrado na linha: [Ô]);
sb.Append(this.dataGridView1.Rows[nItem].Cells[0].Value.ToString());
sb.Append(Environment.NewLine);

}

//Fechamento e MessageBox
sb.Append([Ô]Total de Linhas Selecionadas: [Ô]);
sb.Append(myList.Count());
MessageBox.Show(sb.ToString());

}





Abraços
BRUNOMR 27/03/2011 14:14:46
#369348
VLW ZEROCAL vou tentar aqui!!!!!

Tópico encerrado , respostas não são mais permitidas