Manter o registro selecionado

12/09/2013

Olá, tenho um formWindows C# onde tem um tabcontrol com a page1 no formato Details “Cadastro” e a page2 GridView “Consulta.
O form inicia na page1, no bindingnavigator criei o botão alterar que habilita os textbox para serem alterados...após isto tenho a opção
De salvar ou cancelar. A questão é que salvando ou cancelando ele se move para o primeiro registro, preciso que independente da opção
Escolhida ele se mantenha no mesmo registro. Como fazer isto ?

Jair Souza

Respostas

12/09/2013

Moisés Gonçalves

Mantenha seu objeto na Session ou passe um parâmetro pelo protocolo get.
Responder Citar

12/09/2013

Joel Rodrigues

Primeiro você deve armazenar a linha selecionada em uma variável global:

linhaSelecionada = dataGridView1.SelectedRows[0].Index;


E na sequência seleciona a linha novamente:

dataGridView1.Rows[linhaSelecionada].Selected = true;
Responder Citar

12/09/2013

Joel Rodrigues

Mantenha seu objeto na Session ou passe um parâmetro pelo protocolo get.
Acredito que ele disse que está usando Windows Forms, apesar de ter ficado meio confuso no início da frase.
Responder Citar

12/09/2013

Jair Souza

Montei este código, mas quando abre o form é necessário ir na tabpage2 onde está o grid, para que funcione...o que precisa mudar para funcione sem ir no grid ?

*É bom lembrar que sou totalmente iniciante, cheguei neste código fazendo pesquisas e adaptações.


Privaite void NoMove ()

int linhaSelecionada = 0, primeiraLinha = 0;

if (dataGridView.CurrentRow != null)
{
primeiraLinha = dataGridView.FirstDisplayedScrollingRowIndex;
linhaSelecionada = dataGridView.CurrentRow.Index;
}

this.locatarioTableAdapter.Fill(this.bDBiblioteca2DataSet.Locatario);


dataGridView.FirstDisplayedScrollingRowIndex = primeiraLinha;

dataGridView.Rows[linhaSelecionada].Selected = true;
dataGridView.CurrentCell = dataGridView.Rows[linhaSelecionada].Cells[1];

Agradeço se puder ajudar.
Responder Citar

12/09/2013

Moisés Gonçalves

[quote]Mantenha seu objeto na Session ou passe um parâmetro pelo protocolo get.
Acredito que ele disse que está usando Windows Forms, apesar de ter ficado meio confuso no início da frase.[/quote]
Realmente, não entendi bem, pq ele fez menção a páginas e gridview, que são termos comuns em webforms.
Normalmente em windowsforms agente utiliza dataview e formulário.
Neste caso a solução é armazenar o dado em uma variável global.
Responder Citar

12/09/2013

Jair Souza

Pessoal, como eu faço para postar imagens do windowsform, para que possam entender melhor ?
Responder Citar

12/09/2013

José

Pessoal, como eu faço para postar imagens do windowsform, para que possam entender melhor ?


Amigo para poder por imagem aqui, você tem que fazer upload dela em algum site e posta o link aqui.
Responder Citar

13/09/2013

Jair Souza

Bom dia, pessoal...coloquei a imagem no link abaixo, favor verificar se ajuda no entendimento.

http://uploaddeimagens.com.br/imagens/manter_o_registro_selecionado-png

Obrigado pela atenção.

[url]http://uploaddeimagens.com.br/imagens/manter_o_registro_selecionado-png[/url]
Responder Citar

13/09/2013

Jair Souza

Se alguem puder ajudar...este é o meu código atualizado :

private void NoMoveReg()
{
try
{
int LinhaSelecionada = 0, PrimeiraLinha = 0;

if (locatarioDataGridView.CurrentRow != null)

PrimeiraLinha = locatarioDataGridView.FirstDisplayedScrollingRowIndex;
LinhaSelecionada = locatarioDataGridView.CurrentRow.Index;

this.locatarioTableAdapter.Fill(this.bDBiblioteca2DataSet.Locatario);

locatarioDataGridView.FirstDisplayedScrollingRowIndex = PrimeiraLinha;

locatarioDataGridView.Rows[LinhaSelecionada].Selected = true;
locatarioDataGridView.CurrentCell = locatarioDataGridView.Rows[LinhaSelecionada].Cells[0];
Responder Citar

16/09/2013

Jair Souza

Funcionou com a dica do Joel e ficou assim :

private void BtnSalvar_Click_1(object sender, EventArgs e)
{
BtnPrimeiro.Enabled = true;
BtnAnterior.Enabled = true;
BtnRegAtual.Enabled = true;
BtnProximo.Enabled = true;
BtnUltimo.Enabled = true;
this.tabControl1.TabPages.Add(this.tabPage2);
BtnAtualizar.Enabled = true;
textBox1.Text = "";

int LinhaSelec = 0;

LinhaSelec = locatarioDataGridView.SelectedRows[0].Index;


try
{
if (nomeTextBox.Text != "")
{
this.Validate();
this.locatarioBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.bDBiblioteca2DataSet);
MessageBox.Show("Registro Salvo com Sucesso !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Information);

DesabilitaCampos();
BtnAdFoto.Enabled = true;

locatarioDataGridView.Rows[LinhaSelec].Selected = true;

}
if (fotoTextBox.Text != "")
{
BtnExFoto.Enabled = true;
BtnAdFoto.Enabled = true;
}
else
{
BtnExcluir.Enabled = true;
BtnExFoto.Enabled = false;
BtnAdFoto.Enabled = true;
}
}
catch (Exception ex)
{
MessageBox.Show("Ocorreu um Erro ao Salvar !" + ex.Message, "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Error);

DesabilitaCampos();

locatarioDataGridView.Rows[LinhaSelec].Selected = true;

}
}

Valeu , muito obrigado.
Responder Citar

16/09/2013

José

Como a duvida foi sanada, estou dando o tópico por concluído.
E obrigado por compartilhar a solução com a gente. iniciante.
Responder Citar