Array
(
)

Manter o registro selecionado

Jair Souza
   - 12 set 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 ?

Moisés Gonçalves
   - 12 set 2013

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

0
|
0

Joel Rodrigues
   - 12 set 2013

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

#Código

linhaSelecionada = dataGridView1.SelectedRows[0].Index;


E na sequência seleciona a linha novamente:

#Código
dataGridView1.Rows[linhaSelecionada].Selected = true;

0
|
0

Joel Rodrigues
   - 12 set 2013


Citação:
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.

0
|
0

Jair Souza
   - 12 set 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.

0
|
0

Moisés Gonçalves
   - 12 set 2013


Citação:

Citação:
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.

0
|
0

Jair Souza
   - 12 set 2013

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

0
|
0

José
   - 12 set 2013


Citação:
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.

0
|
0

Jair Souza
   - 13 set 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.

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

0
|
0

Jair Souza
   - 13 set 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];

0
|
0

Jair Souza
   - 16 set 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.

0
|
0

José
   - 16 set 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.

0
|
0