Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Esta documentação foi arquivada e não está sendo atualizada.

Evento ComboBox.DrawItem

Ocorre quando um aspecto visual de um desenho proprietário ComboBox alterações.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)

public event DrawItemEventHandler DrawItem

Este evento é usado por um desenho proprietário ComboBox. Você pode usar esse evento para executar as tarefas necessárias para desenhar itens na ComboBox. Se você tiver um item de tamanho variável (quando o ComboBox.DrawMode for definida como o OwnerDrawVariable valor de System.Windows.Forms.DrawMode), antes de desenhar um item, o MeasureItem evento é gerado. Você pode criar um manipulador de eventos para o MeasureItem evento para especificar o tamanho do item que você vai para desenhar no seu manipulador de eventos para o DrawItem de evento.

Para obter mais informações sobre tratamento de eventos, consulte Consumindo Eventos.

O exemplo de código a seguir demonstra como criar uma caixa de combinação desenhados pelo proprietário, definindo a DrawMode propriedade para OwnerDrawnVariable e manipulando o DrawItem e MeasureItem eventos. Ele também demonstra a configuração de DropDownWidth e DropDownStyle Propriedades. Para executar o exemplo, cole o seguinte código em um formulário. Chamar o InitializeComboBox método no construtor do formulário ou Load de evento.



	internal System.Windows.Forms.ComboBox ComboBox1;
	private string[] animals;

	// This method initializes the owner-drawn combo box.
	// The drop-down width is set much wider than the size of the combo box
	// to accomodate the large items in the list.  The drop-down style is set to 
	// ComboBox.DropDown, which requires the user to click on the arrow to 
	// see the list.
	private void InitializeComboBox()
	{
		this.ComboBox1 = new ComboBox();
		this.ComboBox1.DrawMode = 
			System.Windows.Forms.DrawMode.OwnerDrawVariable;
		this.ComboBox1.Location = new System.Drawing.Point(10, 20);
		this.ComboBox1.Name = "ComboBox1";
		this.ComboBox1.Size = new System.Drawing.Size(100, 120);
		this.ComboBox1.DropDownWidth = 250;
		this.ComboBox1.TabIndex = 0;
		this.ComboBox1.DropDownStyle = ComboBoxStyle.DropDown;
		animals = new string[]{"Elephant", "c r o c o d i l e", "lion"};
		ComboBox1.DataSource = animals;
		this.Controls.Add(this.ComboBox1);

		// Hook up the MeasureItem and DrawItem events
		this.ComboBox1.DrawItem += 
			new DrawItemEventHandler(ComboBox1_DrawItem);
		this.ComboBox1.MeasureItem += 
			new MeasureItemEventHandler(ComboBox1_MeasureItem);
	}

	// If you set the Draw property to DrawMode.OwnerDrawVariable, 
	// you must handle the MeasureItem event. This event handler 
	// will set the height and width of each item before it is drawn. 
	private void ComboBox1_MeasureItem(object sender, 
		System.Windows.Forms.MeasureItemEventArgs e)
	{

		switch(e.Index)
		{
			case 0:
				e.ItemHeight = 45;
				break;
			case 1:
				e.ItemHeight = 20;
				break;
			case 2:
				e.ItemHeight = 35;
				break;
		}
		e.ItemWidth = 260;

	}

	// You must handle the DrawItem event for owner-drawn combo boxes.  
	// This event handler changes the color, size and font of an 
	// item based on its position in the array.
	private void ComboBox1_DrawItem(object sender, 
		System.Windows.Forms.DrawItemEventArgs e)
	{

		float size = 0;
		System.Drawing.Font myFont;
		FontFamily family = null;

		System.Drawing.Color animalColor = new System.Drawing.Color();
		switch(e.Index)
		{
			case 0:
				size = 30;
				animalColor = System.Drawing.Color.Gray;
				family = FontFamily.GenericSansSerif;
				break;
			case 1:
				size = 10;
				animalColor = System.Drawing.Color.LawnGreen;
				family = FontFamily.GenericMonospace;
				break;
			case 2:
				size = 15;
				animalColor = System.Drawing.Color.Tan;
				family = FontFamily.GenericSansSerif;
				break;
		}

		// Draw the background of the item.
		e.DrawBackground();

		// Create a square filled with the animals color. Vary the size
		// of the rectangle based on the length of the animals name.
		Rectangle rectangle = new Rectangle(2, e.Bounds.Top+2, 
				e.Bounds.Height, e.Bounds.Height-4);
		e.Graphics.FillRectangle(new SolidBrush(animalColor), rectangle);

		// Draw each string in the array, using a different size, color,
		// and font for each item.
		myFont = new Font(family, size, FontStyle.Bold);
		e.Graphics.DrawString(animals[e.Index], myFont, System.Drawing.Brushes.Black, new RectangleF(e.Bounds.X+rectangle.Width, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height));

		// Draw the focus rectangle if the mouse hovers over an item.
		e.DrawFocusRectangle();
	}



.NET Framework

Com suporte em: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core não compatível), Windows Server 2008 R2 (Server Core não compatível com SP1 ou posterior), Windows Server 2003 SP2

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos de sistema do .NET Framework.
Mostrar: