TextBoxRenderer Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt methoden die worden gebruikt om een besturingselement voor een tekstvak weer te geven met visuele stijlen. Deze klasse kan niet worden overgenomen.
public ref class TextBoxRenderer sealed
public ref class TextBoxRenderer abstract sealed
public sealed class TextBoxRenderer
public static class TextBoxRenderer
type TextBoxRenderer = class
Public NotInheritable Class TextBoxRenderer
Public Class TextBoxRenderer
- Overname
-
TextBoxRenderer
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een aangepast besturingselement maakt dat gebruikmaakt van de DrawTextBox methode om een tekstvak te tekenen. Met het besturingselement kan de gebruiker ook een van de TextFormatFlags waarden selecteren die op de tekstvaktekst moeten worden toegepast.
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
#using <System.dll>
using namespace System;
using namespace System::Text;
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::VisualStyles;
namespace TextBoxRendererSample
{
public ref class CustomTextBox : public Control
{
private:
TextFormatFlags textFlags;
ComboBox^ textFormatFlagsComboBox;
Rectangle textBorder;
Rectangle textRectangle;
StringBuilder^ textMeasurements;
public:
CustomTextBox():Control()
{
textFlags = TextFormatFlags::Default;
textFormatFlagsComboBox = gcnew ComboBox();
textMeasurements = gcnew StringBuilder();
this->Location = Point(10, 10);
this->Size = System::Drawing::Size(300, 200);
this->Font = SystemFonts::IconTitleFont;
this->Text = "This is a long sentence that will exceed " +
"the text box bounds";
textBorder.Location = Point(10, 10);
textBorder.Size = System::Drawing::Size(200, 50);
textRectangle.Location = Point(textBorder.X + 2,
textBorder.Y + 2);
textRectangle.Size = System::Drawing::Size(textBorder.Size.Width - 4,
textBorder.Height - 4);
textFormatFlagsComboBox->Location = Point(10, 100);
textFormatFlagsComboBox->Size = System::Drawing::Size(150, 20);
textFormatFlagsComboBox->SelectedIndexChanged +=
gcnew EventHandler(this,
&CustomTextBox::textFormatFlagsComboBox_SelectedIndexChanged);
// Populate the combo box with the TextFormatFlags value names.
for each (String^ name in Enum::GetNames(TextFormatFlags::typeid))
{
textFormatFlagsComboBox->Items->Add(name);
}
textFormatFlagsComboBox->SelectedIndex = 0;
this->Controls->Add(textFormatFlagsComboBox);
}
// Use DrawText with the current TextFormatFlags.
protected:
virtual void OnPaint(PaintEventArgs^ e) override
{
__super::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.
private:
void textFormatFlagsComboBox_SelectedIndexChanged(
Object^ sender, EventArgs^ e)
{
this->textFlags = (TextFormatFlags)Enum::Parse(
TextFormatFlags::typeid,
(String^)textFormatFlagsComboBox->Items[
textFormatFlagsComboBox->SelectedIndex]);
Invalidate();
}
};
public ref class Form1 : public Form
{
public:
Form1()
{
__super::Form();
this->Size = System::Drawing::Size(350, 200);
CustomTextBox^ textBox1 = gcnew CustomTextBox();
Controls->Add(textBox1);
}
};
}
using namespace TextBoxRendererSample;
[STAThread]
int 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(gcnew Form1());
}
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]
static void 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());
}
}
public class 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.
protected override void 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();
}
}
}
Imports System.Text
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.VisualStyles
Namespace TextBoxRendererSample
Class Form1
Inherits Form
Public Sub New()
Me.Size = New Size(350, 200)
Dim TextBox1 As New CustomTextBox()
Controls.Add(TextBox1)
End Sub
<STAThread()> _
Shared Sub 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())
End Sub
End Class
Public Class CustomTextBox
Inherits Control
Private textFlags As TextFormatFlags = TextFormatFlags.Default
Private WithEvents comboBox1 As New ComboBox()
Private textBorder As New Rectangle()
Private textRectangle As New Rectangle()
Private textMeasurements As New StringBuilder()
Public Sub New()
With Me
.Location = New Point(10, 10)
.Size = New Size(300, 200)
.Font = SystemFonts.IconTitleFont
.Text = "This is a long sentence that will exceed " + _
"the text box bounds"
End With
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)
' Populate the combo box with the TextFormatFlags value names.
Dim name As String
For Each name In [Enum].GetNames(GetType(TextFormatFlags))
comboBox1.Items.Add(name)
Next name
comboBox1.SelectedIndex = 0
Me.Controls.Add(comboBox1)
End Sub
' Use DrawText with the current TextFormatFlags.
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
If TextBoxRenderer.IsSupported Then
TextBoxRenderer.DrawTextBox(e.Graphics, textBorder, Me.Text, _
Me.Font, textRectangle, textFlags, TextBoxState.Normal)
Me.Parent.Text = "CustomTextBox Enabled"
Else
Me.Parent.Text = "CustomTextBox Disabled"
End If
End Sub
' Assign the combo box selection to the display text.
Private Sub comboBox1_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As EventArgs) Handles comboBox1.SelectedIndexChanged
Me.textFlags = CType([Enum].Parse(GetType(TextFormatFlags), _
CStr(comboBox1.Items(comboBox1.SelectedIndex))), _
TextFormatFlags)
Invalidate()
End Sub
End Class
End Namespace
Opmerkingen
De TextBoxRenderer klasse biedt een set static methoden die kunnen worden gebruikt om een tekstvakbesturingselement weer te geven met de huidige visuele stijl van het besturingssysteem. Het weergeven van een besturingselement verwijst naar het tekenen van de gebruikersinterface van een besturingselement. Dit is handig als u een aangepast besturingselement tekent dat het uiterlijk van de huidige visuele stijl moet hebben. Als u een tekstvak wilt tekenen, gebruikt u een van de DrawTextBox methoden. Deze methoden bieden verschillende opties, zoals het toepassen van tekstopmaak of het opgeven van tekstgrenzen.
Als visuele stijlen zijn ingeschakeld in het besturingssysteem en visuele stijlen worden toegepast op het clientgebied van toepassingsvensters, DrawTextBox tekent u het tekstvak met de huidige visuele stijl. DrawTextBox Anders zal er een InvalidOperationException. Als u wilt bepalen of de leden van deze klasse kunnen worden gebruikt, kunt u de waarde van de IsSupported eigenschap controleren.
Deze klasse verpakt de functionaliteit van een System.Windows.Forms.VisualStyles.VisualStyleRenderer die is ingesteld op een van de elementen van de klasse System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox.TextEdit. Zie Weergavebesturingselementen met visuele stijlen voor meer informatie.
Eigenschappen
| Name | Description |
|---|---|
| IsSupported |
Hiermee wordt een waarde opgehaald die aangeeft of de TextBoxRenderer klasse kan worden gebruikt om een tekstvak met visuele stijlen te tekenen. |
Methoden
| Name | Description |
|---|---|
| DrawTextBox(Graphics, Rectangle, String, Font, Rectangle, TextBoxState) |
Hiermee tekent u een besturingselement voor een tekstvak in de opgegeven status en grenzen, en met de opgegeven tekst- en tekstgrenzen. |
| DrawTextBox(Graphics, Rectangle, String, Font, Rectangle, TextFormatFlags, TextBoxState) |
Hiermee tekent u een besturingselement voor een tekstvak in de opgegeven status en grenzen, en met de opgegeven tekst, tekstgrenzen en tekstopmaak. |
| DrawTextBox(Graphics, Rectangle, String, Font, TextBoxState) |
Hiermee tekent u een besturingselement voor een tekstvak in de opgegeven status en grenzen, en met de opgegeven tekst. |
| DrawTextBox(Graphics, Rectangle, String, Font, TextFormatFlags, TextBoxState) |
Hiermee tekent u een besturingselement voor een tekstvak in de opgegeven status en grenzen, en met de opgegeven tekst- en tekstopmaak. |
| DrawTextBox(Graphics, Rectangle, TextBoxState) |
Hiermee tekent u een besturingselement voor een tekstvak in de opgegeven status en grenzen. |