Como definir a largura da coluna DataGrid através de programação para o campo mais longo usando Visual translation from VPE for Csharp 2005 ou Visual translation from VPE for Csharp .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: 812422
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 811203.
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 clicando duas vezes o separador de coluna. Os dois métodos são independentes da fonte que é usada em campos de coluna DataGrid .

Criar um teste Windows Application projeto

  1. Inicie Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Em Project Types , clique em projetos translation from VPE for Csharp Visual e, em seguida, clique em Windows Application em modelos .

    Observação No Visual Studio 2005, clique em translation from VPE for Csharp Visual em vez de projetos translation from VPE for Csharp Visual .
  4. Nomeie o projeto SampleDataGridColumnWidth e em seguida, clique em OK .

Assistente para configuração de adaptador de dados

Para configurar um controle OleDbDataAdapter , execute estas etapas:
  1. Arraste um controle OleDbDataAdapter da caixa de ferramentas para o formulário.

    Observação No Visual Studio 2005, clique com o botão direito na caixa de ferramentas e clique em Escolher itens . Na guia .NET Framework Components na caixa de diálogo, selecione OleDbDataAdapter .
    Observação Se você usar o controle SqlDataAdapter em vez do controle OleDbDataAdapter , siga as etapas análogas.
  2. No Assistente de configuração de adaptador de dados, 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 SQL Server Northwind. Para fazer isso, execute as seguintes etapas:
    1. Na guia provedor , clique para selecionar Microsoft JET 4.0 OLE DB Provider .
    2. Na guia conexão , em Select or enter a database name , clique em reticências .
    3. Localize o banco de dados Northwind , clique em Abrir e, em seguida, clique em OK .
  5. No Assistente de configuração de adaptador de dados, clique em Avançar .
  6. Clique para selecionar Instrução SQL de usar e, em seguida, clique em Avançar .
  7. Use o Query Builder para inserir o SQL seguinte instrução:
    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 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 Todas as colunas .
    5. Para verificar a conexão, na coluna da tabela, clique com o botão direito do mouse na conexão e, em seguida, clique em Executar . Nos resultados painel, tabela de funcionários dados são exibidos.
    6. Clique em OK .
  8. Clique em Concluir . Observe que o controle de OleDbConnection1 é inserido automaticamente no projeto.

Gerar um DataSet

Gere um DataSet que está relacionada à OleDbDataAdapter1 . Para fazer isso, execute as seguintes etapas:
  1. Clique com o botão direito do mouse OleDbDataAdapter1 e, em seguida, clique em Propriedades .
  2. Na janela Propriedades , clique em Generate Dataset .
  3. Na caixa de diálogo Generate Dataset , clique em novo e, em seguida, denomine DataSet1.
  4. Verifique se a tabela Funcionários está selecionada.
  5. Verifique se a opção Adicionar este dataset para o designer está selecionada e, em seguida, clique em OK .
  6. No Solution Explorer, clique com o botão direito do mouse em Form1.cs e, em seguida, clique em View Code .
  7. Para preencher o DataSet, adicione o seguinte código para o Form1 construtor (isso é pública Form1()):
    oleDbDataAdapter1.Fill(dataSet11);	

Inserir um DataGrid e vincular com um DataSet

  1. Arraste um DataGrid da caixa de ferramentas para o formulário.
  2. Na janela Propriedades , defina a propriedade DataSource para DataSet11.Employees .

Implementar o algoritmo de pesquisa de campo mais longos

Se o DataGrid é vinculado a um DataSet , é mais rápido pesquisar no DataSet para o campo mais longo, que a pesquisa na coluna DataGrid . Para medir a largura da seqüência especificada é desenhada com a fonte especificada, use o método MeasureString do objeto Graphics que é recuperado do DataGrid . Para fazer isso, execute as seguintes etapas:
  1. Arraste um controle de botão da caixa de ferramentas para o formulário.
  2. Clique duas vezes em Button1 e adicione o seguinte código ao evento Button1_Click :
    // Get the width of Longest Fieldint newwidth = LongestField(dataSet11, "Employees", "Title");// Create new Table StyleDataGridTableStyle ts = new DataGridTableStyle();ts.MappingName = "Employees";this.dataGrid1.TableStyles.Clear();this.dataGrid1.TableStyles.Add(ts);// Assign New Width to DataGrid columnthis.dataGrid1.TableStyles["Employees"].GridColumnStyles["Title"].Width = newwidth;
  3. Implementar a função LongestField() na classe Form1 da seguinte maneira:
    private int LongestField (DataSet ds, string TableName, string ColumnName){	int maxlength = 0;	int tot = ds.Tables[TableName].Rows.Count; 	string straux = "";	int intaux = 0;	Graphics g = dataGrid1.CreateGraphics();	// Take width one balnk space to add to the new width to the Column   	int offset = Convert.ToInt32(Math.Ceiling(g.MeasureString(" ", dataGrid1.Font).Width));	for (int i=0; i<tot; ++i)	{		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)						{			maxlength = intaux;		}	}// End of For Loop	return maxlength + offset;}
  4. No menu Debug , clique em Iniciar .
  5. Clique em Button1 . Observe que o título da largura da coluna é 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 informações adicionais, consulte a seguinte site da Microsoft Developer Network (MSDN):
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: 812422 - Última Revisão: 05/10/2007 05:33:59 - Revisão: 3.4

Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbhowtomaster kbctrl kbdatabinding kbwindowsforms kbui KB812422 KbMtpt
Comentários