Manter o registro selecionado

12/09/2013

0

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

Jair Souza

Responder

Posts

12/09/2013

Moisés Gonçalves

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

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

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

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

12/09/2013

Moisés Gonçalves

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.

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

12/09/2013

Jair Souza

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

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

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

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

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

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar