TIRAR SELACAO LINHA DATAGRIDVIEW
                    Bom dia.
Tenho um datagrid que é carregado no Load do formulário, o problema é que ele sempre seleciona a primeira linha de dados do grid e não quero que seja selecinado nada, só quando o usuário quiser.
Tentei no loda usar:
grid.CurrentRow.Selected = false; //tira seleção da linha
grid.Refresh();
Mas não funciona. Essas linhas acima só funcionam quando mando atualizar o grid novamente após uma consulta ao banco e não no carregamento do formulário.
Como posso resolver isso?
            Tenho um datagrid que é carregado no Load do formulário, o problema é que ele sempre seleciona a primeira linha de dados do grid e não quero que seja selecinado nada, só quando o usuário quiser.
Tentei no loda usar:
grid.CurrentRow.Selected = false; //tira seleção da linha
grid.Refresh();
Mas não funciona. Essas linhas acima só funcionam quando mando atualizar o grid novamente após uma consulta ao banco e não no carregamento do formulário.
Como posso resolver isso?
                    Como está carregando o grid?
                
            
                    COLOCA NO CODIGO LOAD DO FORM PARA O FOCU SER MUDADO PARA OUTRO CAMPO QUALQUER.
OU DEIXA O GRID DESABILITADO
[txt-color=#007100] NOME_DO_CAMPO.Select()[/txt-color]
                
            OU DEIXA O GRID DESABILITADO
[txt-color=#007100] NOME_DO_CAMPO.Select()[/txt-color]
                    Erinaldo não funcionou nenhuma das alternativas.
O código é esse:
            O código é esse:
        public void AtualizarGrid(string mySQL)
        {
            // comunicação com a classe BLL
            DepartamentosBLL obj = new DepartamentosBLL();
            DataTable dt = new DataTable();
            try
            {
                dt = obj.MontaGridViewDepto(mySQL);
                grid.DataSource = dt;
                grid.RowsDefaultCellStyle.BackColor = Color.LightCyan;
                grid.AlternatingRowsDefaultCellStyle.BackColor = Color.LightBlue;
                grid.CellBorderStyle = DataGridViewCellBorderStyle.None;
                grid.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
                grid.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                grid.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                grid.AllowUserToResizeColumns = false;
                grid.CurrentRow.Selected = false;   //tira seleção da linha
            }
            catch (SqlException ex)
            {
                MessageBox.Show(Idioma.RetornaMensagem([Ô]ErroServidorSQL[Ô]) + ex.Message, Idioma.RetornaMensagem([Ô]TituloAvisoMSG[Ô]), MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            catch (Exception ex)
            {
                MessageBox.Show(Idioma.RetornaMensagem([Ô]ErroNaoPrevisto[Ô]) + ex.Message, Idioma.RetornaMensagem([Ô]TituloAvisoMSG[Ô]), MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            finally
            {
                dt.Dispose();
            }
        }
                
                    Fala grande Luiz!
defina o evento DataBindingComplete do gridview e coloque como está o codigo abaixo:
            defina o evento DataBindingComplete do gridview e coloque como está o codigo abaixo:
Citação:
private void dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
DataGridView gridView;
gridView = (DataGridView) sender;
gridView.ClearSelection();
}
                    Bom dia Littleboy.
Funcionou perfeitamente, só tive de incluir o método LimparCampos(); ao final deste código, pois como o evento grid_SelectionChanged era disparado no carregamento, os campos eram preenchidos, assim eu limpo após carregar e tirar a seleção, ficou perfeito.
Agora pesquisei muito e não encontrei nada disso, como se descobre essas coisas?
Uma pergunta, como funciona essa sintaxe (DataGridView)Sender; ?
Porque fica entre parênteses e sem ponto depois?
Muito obrigado.
            Funcionou perfeitamente, só tive de incluir o método LimparCampos(); ao final deste código, pois como o evento grid_SelectionChanged era disparado no carregamento, os campos eram preenchidos, assim eu limpo após carregar e tirar a seleção, ficou perfeito.
Agora pesquisei muito e não encontrei nada disso, como se descobre essas coisas?
Uma pergunta, como funciona essa sintaxe (DataGridView)Sender; ?
Porque fica entre parênteses e sem ponto depois?
Muito obrigado.
                    isto é um cast. como sender é um tipo Object, eu preciso converte-lo para o tipo correto, neste DataGridView
sintaxe:
([Ô]tipo de dados[Ô])[Ô]valor a converter[Ô]
int i=25;
float f;
f=(float)i;
                
            sintaxe:
([Ô]tipo de dados[Ô])[Ô]valor a converter[Ô]
int i=25;
float f;
f=(float)i;
                        Tópico encerrado , respostas não são mais permitidas