Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe TextBoxRenderer

Fornece métodos usados para processar um controle de caixa de texto com estilos visuais. Esta classe não pode ser herdada.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)
public sealed class TextBoxRenderer

The TextBoxRenderer classe fornece um conjunto de static métodos que podem ser usados para processar um controle de caixa de texto com o estilo visual corrente do sistema operacional. Processar um controle refere-se a interface de usuário de um controle de desenho. Isso é útil se você está desenhando um controle personalizado deve ter a aparência de estilo visual corrente. Para desenhar uma caixa de texto, use um do DrawTextBox métodos. Esses métodos fornecem uma variedade de opções, sistema autônomo especificar limites de texto ou aplicar formatação de texto.

Se estilos visuais estiverem habilitados no sistema operacional e estilos visuais são aplicados à área de cliente das janelas de aplicativo, DrawTextBox desenhará a caixa de texto com o estilo visual corrente. Caso contrário, DrawTextBox lançará um InvalidOperationException. Para determinar se os membros dessa classe podem ser usados, você pode verificar o valor do IsSupported propriedade.

Essa classe encapsula a funcionalidade de um System.Windows.Forms.VisualStyles.VisualStyleRenderer Isto é conjunto a um dos elementos da System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox.TextEdit classe. Para mais informação, veja Controles de processamento com estilos visuais.

Windows XP Home Edition, Windows XP Professional x64 Edition, Windows Server 2003 Observação Zoom, Para Cima e Ampliar:

Só há suporte para estilos visuais nessas plataformas.

O exemplo de código a seguir demonstra como criar um controle personalizado que usa o DrawTextBox método para desenhar uma caixa de texto. O controle também permite ao usuário selecionar uma do TextFormatFlags valores para aplicar ao texto da caixa de texto.

using System;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;

namespace TextBoxRendererSample
{
    class Form1 : Form
    {
        public Form1()
            : base()
        {
            this.Size = new Size(350, 200);
            CustomTextBox TextBox1 = new CustomTextBox();
            Controls.Add(TextBox1);
        }

        [STAThread]
        staticvoid Main()
        {
            // The call to EnableVisualStyles below does not affect whether // TextBoxRenderer draws the text box; as long as visual styles // are enabled by the operating system, TextBoxRenderer will // draw the text box.
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }
    }

    publicclass CustomTextBox : Control
    {
        private TextFormatFlags textFlags = TextFormatFlags.Default;
        ComboBox comboBox1 = new ComboBox();
        Rectangle textBorder = new Rectangle();
        Rectangle textRectangle = new Rectangle();
        StringBuilder textMeasurements = new StringBuilder();

        public CustomTextBox()
            : base()
        {
            this.Location = new Point(10, 10);
            this.Size = new Size(300, 200);
            this.Font = SystemFonts.IconTitleFont;
            this.Text = "This is a long sentence that will exceed " +
                "the text box bounds";

            textBorder.Location = new Point(10, 10);
            textBorder.Size = new Size(200, 50);
            textRectangle.Location = new Point(textBorder.X + 2,
                textBorder.Y + 2);
            textRectangle.Size = new Size(textBorder.Size.Width - 4,
                textBorder.Height - 4);

            comboBox1.Location = new Point(10, 100);
            comboBox1.Size = new Size(150, 20);
            comboBox1.SelectedIndexChanged +=
                new EventHandler(comboBox1_SelectedIndexChanged);

            // Populate the combo box with the TextFormatFlags value names.foreach (string name in Enum.GetNames(typeof(TextFormatFlags)))
            {
                comboBox1.Items.Add(name);
            }

            comboBox1.SelectedIndex = 0;
            this.Controls.Add(comboBox1);
        }

        // Use DrawText with the current TextFormatFlags.protectedoverridevoid OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            if (TextBoxRenderer.IsSupported)
            {
                TextBoxRenderer.DrawTextBox(e.Graphics, textBorder, this.Text,
                    this.Font, textRectangle, textFlags, TextBoxState.Normal);

                this.Parent.Text = "CustomTextBox Enabled";
            }
            else
            {
                this.Parent.Text = "CustomTextBox Disabled";
            }
        }

        // Assign the combo box selection to the display text.void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.textFlags = (TextFormatFlags)Enum.Parse(
                typeof(TextFormatFlags),
                (string)comboBox1.Items[comboBox1.SelectedIndex]);
            Invalidate();
        }
    }
}


System.Object
  System.Windows.Forms.TextBoxRenderer
Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0
Isso foi útil para você?
(1500 caracteres restantes)
Conteúdo da Comunidade Adicionar