none
Tirar o foco do DataGridView no carregamento do Form - C# RRS feed

  • Pergunta

  • Boa tarde Galerinha!

    Preciso fazer com que, quando o form carregar, seja dado o foco na caixa de Pesquisar. Já tentei de todas as maneiras, mas o foco sempre fica no DataGridView quando passa pelo evendo form_load().

    Como faço para tirar o foco do datagrid e deixá-lo apenas na caixa Pesquisar?

    o projeto encontra-se em: 

    https://onedrive.live.com/?id=40838E65B9F8787E%21120&cid=40838E65B9F8787E&group=0


    quinta-feira, 16 de julho de 2015 18:21

Respostas

  • Jalber, tente trocar de Focus() para Select().

     private void frmPaisCadastroPrincipal_Load(object sender, EventArgs e)
            {            
               CarregarDataGrid();
               CarregarComboBoxPesquisar();
    
               this.txbPesquisar.Select();
            }

    • Marcado como Resposta Jalber Romano sexta-feira, 17 de julho de 2015 13:18
    sexta-feira, 17 de julho de 2015 11:31

Todas as Respostas

  • Tenta fazer da seguinte maneira.

     public Form1()
            {
                this.InitializeComponent();
                this.Load += Form1_Load;
            }
    
            void Form1_Load(object sender, EventArgs e)
            {
                this.textBox1.Focus();
            }

    Você assina o evento de load da sua janela, assim quando o evento for disparado você manualmente seta o Foco para o TextBox.

    Se não funcionar dessa maneira, tenta dar o foco para o GroupBox e depois para o TextBox.


    quinta-feira, 16 de julho de 2015 18:43
  • Obrigado por responder Bruno.

    Infelizmente não funcionou brother...

    quinta-feira, 16 de julho de 2015 18:58
  • Consegue postar o código para que possamos de ajudar melhor?
    quinta-feira, 16 de julho de 2015 19:38
  • Sim...
    quinta-feira, 16 de julho de 2015 19:45
  • Meu datagridview está sendo montado dinamicamente...

    ====================================

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using BLL;
    using DTO;



    namespace GUI
    {
        public partial class frmPaisPesquisar : GUI.frmModeloPesquisa
        {
            public frmPaisPesquisar()
            {
                InitializeComponent();
                dgPesquisar.DefinirGrade(DataGridViewSelectionMode.FullRowSelect, 25);
            }

            public void CarregarComboBoxPesquisar()
            {            
                cbPesquisar.Items.Add("Cód. País");
                cbPesquisar.Items.Add("Nome");
                cbPesquisar.Items.Add("Cód. Correios");
                cbPesquisar.SelectedIndex = 1;
            }

            public void CarregarDataGrid()
            {
                PaisBLL paisBLL = new PaisBLL();

                LimparDataGrid();            
                dgPesquisar.DataSource = paisBLL.ConsultarTodos();

                dgPesquisar.DefinirTiposColunas(new List<String>() { "IDPais", "Nome", "CodigoCorreios", "Sigla2Carac", "Sigla3Carac", "Nacionalidade", "Sistema" }, new List<String>() { "textbox", "textbox", "textbox", "textbox", "textbox", "textbox", "checkbox" });
                dgPesquisar.DefinirTitulosCabecalhos(new List<String>() { "Cód. País", "Nome", "Cód. Correios", "Sigla 2 carac.", "Sigla 3 carac.", "Nacionalidade", "Sistema" });
                dgPesquisar.DefinirAlinhamentoCabecalhos(new List<String>() { "centro", "centro", "centro", "centro", "centro", "centro", "centro" });
                dgPesquisar.DefinirAlinhamentosColunas(new List<String>() { "centro", "esquerda", "centro", "centro", "centro", "centro", "centro" });
                dgPesquisar.DefinirLarguras(new List<int>() { 10, 47, 13, 13, 13, 13, 7 });
                dgPesquisar.DefinirVisibiliade(new List<String>() { "IDPais", "Nome", "CodigoCorreios", "Sigla2Carac", "Sigla3Carac", "Nacionalidade", "Sistema" });
                dgPesquisar.DefinirEstilosCabecalhos(new List<String>() { "italico", "italico", "italico", "italico", "italico", "italico", "italico" });         

                dgPesquisar.Update();
                dgPesquisar.Refresh();

            }

            public void Pesquisar()
            {
                PaisBLL paisBLL = new PaisBLL();

                txbPesquisar.Text.Trim();
                if (cbPesquisar.SelectedIndex == 0)
                {
                    try
                    {
                        if (txbPesquisar.Text != "")
                        {
                            int Pesquisa = (Convert.ToInt32(txbPesquisar.Text));
                            dgPesquisar.DataSource = paisBLL.ConsultarPorID(Convert.ToInt32(txbPesquisar.Text));
                        }
                        else
                            dgPesquisar.DataSource = paisBLL.ConsultarTodos();

                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Digite apenas valores numéricos!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }

                }
                else if (cbPesquisar.SelectedIndex == 1)
                {
                    if (txbPesquisar.Text != "")
                        dgPesquisar.DataSource = paisBLL.ConsultarPorNome(txbPesquisar.Text);
                    else
                        dgPesquisar.DataSource = paisBLL.ConsultarTodos();
                }
                else if (cbPesquisar.SelectedIndex == 2)
                {
                    if (txbPesquisar.Text != "")
                        dgPesquisar.DataSource = paisBLL.ConsultarPorCodigoCorreios(txbPesquisar.Text);
                    else
                       dgPesquisar.DataSource = paisBLL.ConsultarTodos();
                }
            }

            public void LimparDataGrid()
            {
                dgPesquisar.DataSource = null;
                dgPesquisar.Columns.Clear(); 
                dgPesquisar.Rows.Clear();   
                dgPesquisar.Refresh();
            }

            private void btnPesquisar_Click(object sender, EventArgs e)
            {
                Pesquisar();
            }

            private void txbPesquisar_TextChanged(object sender, EventArgs e)
            {
                Pesquisar();
            }

            private void frmPaisCadastroPrincipal_Load(object sender, EventArgs e)
            {            
               CarregarDataGrid();
               CarregarComboBoxPesquisar();
               txbPesquisar.Focus();
            }

            private void btnFechar_Click_1(object sender, EventArgs e)
            {
                Close();
            }

            private void btnExcluir_Click_1(object sender, EventArgs e)
            {
                if (dgPesquisar.SelectedRows.Count == 0)
                {
                    MessageBox.Show("Nenhum país selecionado.");
                    return;
                }

                if (MessageBox.Show("Tem certeza que deseja excluir este país?", "Excluir", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return;
                }

                PaisDTO PaisSelecionado = (dgPesquisar.SelectedRows[0].DataBoundItem as PaisDTO);
                PaisBLL paisBLL = new PaisBLL();
                String Retorno = paisBLL.Excluir(PaisSelecionado);

                try
                {
                    int IDCliente = Convert.ToInt32(Retorno);
                    MessageBox.Show("País excluído com sucesso.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    CarregarDataGrid();

                }
                catch (Exception)
                {
                    MessageBox.Show("Não foi possível excluir. Detalhes: " + Retorno, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            private void btnAdicionar_Click_1(object sender, EventArgs e)
            {
                frmPaisCadastrar frm_PaisCadastro = new frmPaisCadastrar(AcaoTela.Inserir, null);
                DialogResult dialogResult = frm_PaisCadastro.ShowDialog();
                if (dialogResult == DialogResult.Yes)
                    CarregarDataGrid();
            }

            private void btnAlterar_Click_1(object sender, EventArgs e)
            {
                if (dgPesquisar.SelectedRows.Count == 0)
                {
                    MessageBox.Show("Nenhum país selecionado.");
                    return;
                }

                PaisDTO PaisSelecionado = (dgPesquisar.SelectedRows[0].DataBoundItem as PaisDTO);
                frmPaisCadastrar frm_PaisCadastro = new frmPaisCadastrar(AcaoTela.Alterar, PaisSelecionado);
                //frm_PaisCadastro.ShowDialog();
                DialogResult dialogResult = frm_PaisCadastro.ShowDialog();
                if (dialogResult == DialogResult.Yes)
                    CarregarDataGrid();

            }

            private void btnVisualizar_Click_1(object sender, EventArgs e)
            {
                if (dgPesquisar.SelectedRows.Count == 0)
                {
                    MessageBox.Show("Nenhum país selecionado.");
                    return;
                }

                PaisDTO PaisSelecionado = (dgPesquisar.SelectedRows[0].DataBoundItem as PaisDTO);
                frmPaisCadastrar frm_PaisCadastro = new frmPaisCadastrar(AcaoTela.Visualizar, PaisSelecionado);
                frm_PaisCadastro.ShowDialog();
            }
        }
    }

    quinta-feira, 16 de julho de 2015 19:49
  • Tenta dar o foco no GroupBox antes do TextBox.
    quinta-feira, 16 de julho de 2015 20:29
  • Funcionou não rsrs
    quinta-feira, 16 de julho de 2015 21:16
  • Coloquei o projeto e o banco na nuvem... Caso queira dar uma olhada com mais tempo...

    https://onedrive.live.com/?id=40838E65B9F8787E%21120&cid=40838E65B9F8787E&group=0

    É o cadastro de Países..

    quinta-feira, 16 de julho de 2015 21:39
  • Cara, com o Focus() deveria funcionar. Algo estranho. Como você usa Windows Form, experimenta colocar o TabIndex do Grid para -1. Isso não tem nada a ver com a foco, porem diz ao sistema que esse componente não será o primeiro na ordem de tabulação do form. Isso é só uma tentativa.
    quinta-feira, 16 de julho de 2015 22:00
  • Obrigado por responder Pnet...

    Quando compila dá erro... Não aceita -1 para o TabIndex...

    quinta-feira, 16 de julho de 2015 22:14
  • Jalber, tente trocar de Focus() para Select().

     private void frmPaisCadastroPrincipal_Load(object sender, EventArgs e)
            {            
               CarregarDataGrid();
               CarregarComboBoxPesquisar();
    
               this.txbPesquisar.Select();
            }

    • Marcado como Resposta Jalber Romano sexta-feira, 17 de julho de 2015 13:18
    sexta-feira, 17 de julho de 2015 11:31
  • Funcionou Bruno!!!

    Muito obrigado cara!!! ficou da seguinte maneira:

     private void frmPaisCadastroPrincipal_Load(object sender, EventArgs e)
            {            
               CarregarDataGrid();
               CarregarComboBoxPesquisar();
               this.txbPesquisar.Select();

            }

    ... E caso encerrado! kkkkkkkk

    sexta-feira, 17 de julho de 2015 13:17