Quando carregamos controles do tipo DropDownList as vezes precisamos definir quais os valores que aparecerão para o Usuário visualizar e quais ficarão como valores para resgatarmos e fazermos comparações ou até mesmo, gravar na Base de Dados. Além disso, precisamos colocar valores Defaults, exemplo: "Selecione...". Abaixo veremos como podemos fazer isso:


            Me.cboVeiculos.DataValueField = "VeiculoID"

            Me.cboVeiculos.DataTextField = "Nome"
            
            Me.cboVeiculos.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection)
            
            Me.cboVeiculos.DataBind()
            
            Me.cboVeiculos.Items.Insert(0, "Selecione...")
            
            Me.cboVeiculos.SelectedIndex = Me.cboVeiculos.Items.IndexOf(Me.cboVeiculos.Items.FindByText("Golf"))
        

Nas propriedades DataValueField e DataTextField recebem os campos da Tabela da Base de Dados ou as Propriedades de uma Coleção. Utilizando o método Insert da Propriedade Items passamos a posição qual queremos que seja inserida. No caso acima, coloquei-o na primeira posição à aparecer no DropDownList. Além de tudo isso, ainda podemos posicionar o DropDownList em alguma posição qualquer, deixando à vista um determinado item. Para isso utilize o método FindByText e passe como parâmetro o texto que deseja que fique à mostra. Se você não tiver o valor do Texto, pode utilizar o outro método chamado FindByValue, que faz a mesma coisa, mas baseia a busca nos valores internos do DropDownList.