Como definir a largura da coluna DataGrid para o campo mais longo programaticamente usando o Visual Basic .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 811203
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo passo a passo descreve como programaticamente definir a largura da coluna de um DataGrid para o campo mais longo da coluna DataGrid . Você também pode fazer isso se você clicar duas vezes em coluna Separador . Ambos os métodos são independentes da fonte que é usada em campos de coluna DataGrid .


Criar um teste Windows Application projeto

  1. No Visual Studio. NET, aponte para novo no menu arquivo e, em seguida, clique em Project .
  2. Clique em Projetos do Visual Basic e, em seguida, clique em Windows Application .
  3. Nomeie o projeto SampleDataGridColumnWidth e em seguida, clique em OK .

Assistente para configuração de adaptador de dados

Para configurar OleDbDataAdapter1 , execute estas etapas:
  1. Arraste um OleDbDataAdapter da caixa de ferramentas (localizada em dados ) para Form1.

    Observação Se você usar SqlDataAdapter em vez do OleDbDataAdapter , siga as etapas análogas.
  2. No Data Adapter Configuration Wizard , clique em Avançar .
  3. Clique em New Connection .
  4. Na caixa de diálogo Data Link Properties , selecione a conexão ao banco de dados Northwind. Para fazer isso, execute as seguintes etapas:
    1. Na guia provedor , clique para selecionar a caixa de seleção Microsoft JET 4.0 OLE DB Provider .
    2. Na guia conexão , clique em reticências em Select or enter a um nome de banco de dados .
    3. Localize o banco de dados Northwind , clique em Abrir e, em seguida, clique em OK .
  5. No Data Adapter Configuration Wizard , clique em Avançar .
  6. Clique para selecionar a caixa de seleção Usar SQL Statement .
  7. Clique em Avançar .
  8. Use o construtor de consultas para inserir a instrução SQL SELECT FROM Funcionários . Para fazer isso, execute as seguintes etapas:
    1. Clique em Construtor de consultas .
    2. Na caixa de diálogo Adicionar tabela , clique para selecionar a tabela funcionários .
    3. Clique em Adicionar e, em seguida, clique em Fechar .

      Se a caixa de diálogo Adicionar tabela não for exibido, clique com o botão direito do mouse a caixa de diálogo Construtor de consultas e, em seguida, clique em Adicionar tabela .
    4. Na tabela funcionários , clique para selecionar a caixa de seleção Todas as colunas .
    5. Para verificar a conexão, clique com o botão direito do mouse na conexão e clique em Executar na coluna de tabela .

      No painel de resultados, dados da tabela Funcionário é exibido.
    6. Clique em OK .
  9. Clique em Concluir .

    Observe que o controle de OleDbConnection1 é automaticamente inserido para o projeto.

Gerar um DataSet

Para gerar um DataSet que está relacionada à oleDbDataAdapter1 , execute estas etapas:
  1. Clique com o botão direito do mouse OleDbDataAdapter1 e, em seguida, clique em Propriedades .
  2. Na janela Propriedades, clique em Gerar DataSet .
  3. Na caixa de diálogo Generate Dataset , clique em novo e, em seguida, digite o nome DataSet1 .
  4. Verifique se a tabela funcionários está selecionada.
  5. Verifique se a opção Adicionar este DataSet para o designer está selecionada.
  6. Clique em OK .
  7. No Solution Explorer, clique com o botão direito do mouse em Form1.vb e, em seguida, clique em View Code .
  8. Para preencher o DataSet , acrescente o seguinte código para o construtor de Form1. O Form1 construtor é Public Sub New() .
    OleDbDataAdapter1.Fill(DataSet11)	

Insira um DataGrid e vincular It com DataSet

Para inserir um DataGrid e vinculá-lo com o DataSet , execute estas etapas:
  1. Arraste um DataGrid da caixa de ferramentas (localizada em Windows Forms ) para Form1.
  2. Na janela Properties, defina a propriedade DataSource para DataSet11.Employees .

Implementar o algoritmo de pesquisa de campo mais longos

Para medir a largura da seqüência especificada é desenhada com a fonte especificada, use o método MeasureString do objeto gráfico que é recuperado do DataGrid . Para pesquisar no DataSet para o campo mais longo é mais rápido do que quando você procurar na coluna DataGrid se DataGrid está vinculado a um DataSet . Para pesquisar no DataSet para o campo mais longo, execute estas etapas:
  1. Arraste um botão da caixa de ferramentas (localizada em Windows Forms ) para Form1.
  2. Clique duas vezes em Button1 e adicione o seguinte código ao evento Button1_Click :
    ' Get the width of the Longest Field.Dim newwidth As Integer = LongestField(DataSet11, "Employees", "Title")' Create new Table Style.Dim ts As New DataGridTableStyle()ts.MappingName = "Employees"DataGrid1.TableStyles.Clear()DataGrid1.TableStyles.Add(ts)' Assign New Width to DataGrid column.DataGrid1.TableStyles("Employees").GridColumnStyles("Title").Width = newwidth 
  3. Implementar a função LongestField() na classe Form1 , da seguinte maneira: maxlength
    Private Function LongestField(ByVal ds As DataSet, ByVal TableName As String, ByVal ColumnName As String) As Integer  Dim maxlength As Integer = 0  Dim g As Graphics = DataGrid1.CreateGraphics()  ' Take width of one blank space and add to the new width of the Column.  Dim offset As Integer = Convert.ToInt32(Math.Ceiling(g.MeasureString(" ", DataGrid1.Font).Width))  Dim i As Integer = 0  Dim intaux As Integer  Dim straux As String  Dim tot As Integer = ds.Tables(TableName).Rows.Count  For i = 0 To (tot - 1)   straux = ds.Tables(TableName).Rows(i)(ColumnName).ToString()   ' Get the width of Current Field String according to the Font.   intaux = Convert.ToInt32(Math.Ceiling(g.MeasureString(straux, DataGrid1.Font).Width))   If (intaux > maxlength) Then    maxlength = intaux   End If  Next  Return maxlength + offset End Function
  4. No menu Debug , clique em Iniciar .
  5. Clique em Button1 .

    Observe que a largura da coluna título é modificada para o tamanho de campo mais longa.

Referências
Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
313482INFO: Guia para Windows Forms Data Binding

Para obter mais informações, visite o seguinte site:

Dados de vinculação com o Windows Forms e ADO.NET
http://msdn2.microsoft.com/en-us/library/ms973824.aspx


Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 811203 - Última Revisão: 12/08/2015 01:46:17 - Revisão: 2.3

Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbnosurvey kbarchive kbmt kbvs2005doesnotapply kbvs2005swept kbhowtomaster kbctrl kbdatabinding kbwindowsforms kbui kbdataobject kbhowto kbcode KB811203 KbMtpt
Comentários