Erro: Fonte do texto TabPage não é alterado quando você altera a propriedade fonte do controle TabPage

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: 814345
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Quando você define a propriedade fonte de um controle TabPage em um controle TabControl , a fonte do texto TabPage não é alterado. Alterar apenas as fontes dos controles que aparecem na TabPage .
Causa
Esse problema ocorre porque a propriedade DrawMode de um TabControl é definida como normal .

O evento DrawItem determina a maneira como que TabControl é desenhado no Windows Form. Quando a propriedade DrawMode é definida como normal (a configuração padrão), você não pode acessar o evento DrawItem . Portanto, se a propriedade DrawMode for definida como normal , você não pode alterar as fontes de TabPage controles que estão em um TabControl .
Resolução
Para resolver esse problema, defina a propriedade DrawMode do TabControl para OwnerDrawFixed e, em seguida, declarar um manipulador de eventos está vinculado ao evento DrawItem . Esse manipulador de eventos desenha a fonte necessária para cada guia. O código de exemplo a seguir demonstra como fazer isso.

Código de exemplo translation from VPE for Csharp Visual

using System.Drawing;using System.Windows.Forms;public class Form1 : Form{	private Rectangle tabArea ,tabArea1;	private RectangleF tabTextArea , tabTextArea1;	public Form1()	{		TabControl MytabControl1 = new TabControl();		TabPage MytabPage1 = new TabPage();		TabPage MytabPage2 = new TabPage();		// Allows access to the DrawItem event. 		MytabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;		MytabControl1.SizeMode = TabSizeMode.Fixed;		MytabControl1.Controls.Add(MytabPage1);		MytabControl1.Controls.Add(MytabPage2);		MytabControl1.ItemSize = new Size(80, 30);		MytabControl1.Location = new Point(25, 25);		MytabControl1.Size = new Size(250, 250);		MytabPage1.TabIndex = 0;		MytabPage2.TabIndex = 1;		ClientSize = new Size(300, 300);		Controls.Add(MytabControl1);		tabArea = MytabControl1.GetTabRect(0);		tabArea1= MytabControl1.GetTabRect(1); 		tabTextArea = (RectangleF)MytabControl1.GetTabRect(0);		tabTextArea1 = (RectangleF)MytabControl1.GetTabRect(1);      		// Binds the event handler DrawOnTab to the DrawItem event		// through the DrawItemEventHandler delegate.		MytabControl1.DrawItem += new DrawItemEventHandler(DrawOnTab);	}	// Declares the event handler DrawOnTab. DrawOnTab is a method that	// draws a string and a Rectangle on the tabPage1 tab.	private void DrawOnTab(object sender, DrawItemEventArgs e)	{		Graphics g = e.Graphics;		Pen p = new Pen(Color.Blue);		Pen p1 = new Pen(Color.Red );		Font font = new Font("Arial", 10.0f);		Font font1 = new Font("Comic Sans MS", 12.0f);		SolidBrush brush = new SolidBrush(Color.Blue);		SolidBrush brush1 = new SolidBrush(Color.Red );		g.DrawRectangle(p, tabArea1);		g.DrawRectangle (p1,tabArea);		g.DrawString("tabPage1", font, brush, tabTextArea);		g.DrawString("tabPage2", font1, brush1, tabTextArea1);	}	static void Main() 	{		Application.Run(new Form1());	}}

Código de exemplo do Visual Basic .NET

Imports System.DrawingImports System.Windows.FormsPublic Class Form1    Inherits Form    Private tabArea, tabArea1 As Rectangle    Private tabTextArea, tabTextArea1 As RectangleF    Public Sub New()        Dim MytabControl1 As New TabControl        Dim MytabPage As New TabPage        Dim Mytabpage1 As New TabPage        ' Allows access to the DrawItem event.         MytabControl1.DrawMode = TabDrawMode.OwnerDrawFixed        MytabControl1.SizeMode = TabSizeMode.Fixed        MytabControl1.Controls.Add(MytabPage)        MytabControl1.Controls.Add(MytabPage1)        MytabControl1.ItemSize = New Size(80, 30)        MytabControl1.Location = New Point(25, 25)        MytabControl1.Size = New Size(250, 250)        MytabPage1.TabIndex = 0        ClientSize = New Size(300, 300)        Controls.Add(MytabControl1)        tabArea = MytabControl1.GetTabRect(0)        tabArea1 = MytabControl1.GetTabRect(1)        tabTextArea = RectangleF.op_Implicit(MytabControl1.GetTabRect(0))        tabTextArea = RectangleF.op_Implicit(MytabControl1.GetTabRect(1))        ' Binds the event handler DrawOnTab to the DrawItem event         ' through the DrawItemEventHandler delegate.        AddHandler MytabControl1.DrawItem, AddressOf DrawOnTab    End Sub    ' Declares the event handler DrawOnTab. DrawOnTab is a method that    ' draws a string and a Rectangle on the tabPage1 tab.    Private Sub DrawOnTab(ByVal sender As Object, ByVal e As DrawItemEventArgs)        Dim g As Graphics = e.Graphics        Dim p As New Pen(Color.Blue)        Dim p1 As New Pen(Color.Red)        Dim font As New Font("Arial", 10.0F)        Dim font1 As New Font("Comic Sans MS", 11.0F)        Dim brush As New SolidBrush(Color.Blue)        Dim brush1 As New SolidBrush(Color.Red)        g.DrawRectangle(p, tabArea)        g.DrawRectangle(p1, tabArea1)        g.DrawString("tabPage2", font, brush, tabTextArea)        g.DrawString("tabPage1", font1, brush1, tabTextArea1)    End SubEnd Class
Situação
A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 814345 - Última Revisão: 12/08/2015 02:01:17 - Revisão: 1.5

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

  • kbnosurvey kbarchive kbmt kbvs2005doesnotapply kbvs2005swept kbvs2002sp1sweep kbpending kbtabctrl kbwindowsforms kbfont kbbug KB814345 KbMtpt
Comentários
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)