Manter o registro selecionado
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 ?
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
Curtidas 0
Respostas
Moisés Gonçalves
12/09/2013
Mantenha seu objeto na Session ou passe um parâmetro pelo protocolo get.
GOSTEI 0
Joel Rodrigues
12/09/2013
Primeiro você deve armazenar a linha selecionada em uma variável global:
E na sequência seleciona a linha novamente:
linhaSelecionada = dataGridView1.SelectedRows[0].Index;
E na sequência seleciona a linha novamente:
dataGridView1.Rows[linhaSelecionada].Selected = true;
GOSTEI 0
Joel Rodrigues
12/09/2013
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.
GOSTEI 0
Jair Souza
12/09/2013
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.
*É 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.
GOSTEI 0
Moisés Gonçalves
12/09/2013
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.
GOSTEI 0
Jair Souza
12/09/2013
Pessoal, como eu faço para postar imagens do windowsform, para que possam entender melhor ?
GOSTEI 0
José
12/09/2013
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.
GOSTEI 0
Jair Souza
12/09/2013
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]
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]
GOSTEI 0
Jair Souza
12/09/2013
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];
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];
GOSTEI 0
Jair Souza
12/09/2013
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.
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.
GOSTEI 0
José
12/09/2013
Como a duvida foi sanada, estou dando o tópico por concluído.
E obrigado por compartilhar a solução com a gente. iniciante.
E obrigado por compartilhar a solução com a gente. iniciante.
GOSTEI 0