UpDownBase-Klasse
Implementiert die für ein Drehfeld (auch als Auf-Ab-Steuerelement bezeichnet) erforderlichen Basisfunktionen.
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)
Syntax
'Declaration
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
<ComVisibleAttribute(True)> _
Public MustInherit Class UpDownBase
Inherits ContainerControl
'Usage
Dim instance As UpDownBase
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[ComVisibleAttribute(true)]
public abstract class UpDownBase : ContainerControl
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)]
[ComVisibleAttribute(true)]
public ref class UpDownBase abstract : public ContainerControl
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */
/** @attribute ComVisibleAttribute(true) */
public abstract class UpDownBase extends ContainerControl
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)
ComVisibleAttribute(true)
public abstract class UpDownBase extends ContainerControl
Hinweise
Ein Drehfeld besteht aus einem Textfeld und einer kleinen vertikalen Bildlaufleiste, die üblicherweise als Drehfeldsteuerelement bezeichnet wird. Die UpDownBase-Klasse verknüpft beide Steuerelemente und ermöglicht es dem Benutzer, die Anzeige im Textfeld durch Klicken auf die Auf- oder Ab-Schaltfläche zu ändern oder den entsprechenden Werttyp direkt im Textfeld einzugeben. Mit dem Drehfeld können Sie, ähnlich wie bei einem Listen- oder Kombinationsfeld, die Liste der Werte beschränken, die ein Benutzer auswählen kann. Abhängig vom Typ der anzuzeigenden Liste bietet ein Drehfeld den Vorteil, dass Sie einen Bereich zulässiger Werte schnell festlegen können und nicht jedes Element einzeln hinzufügen müssen. Durch das Implementieren eines Drehfelds anstelle eines Textfelds vermindern Sie den Validierungsaufwand, da Sie den Datentyp beim Ableiten einer Klasse von UpDownBase beschränken können. Ein Beispiel hierfür ist die NumericUpDown-Klasse, die die Werte auf den numerischen Typ beschränkt und die Daten mithilfe einer Minimum-Eigenschaft und einer Maximum-Eigenschaft validiert.
Um es Benutzern zu ermöglichen, den Inhalt des Drehfelds mit den Pfeiltasten zu ändern, legen Sie die InterceptArrowKeys-Eigenschaft auf true fest. Um die Eingaben des Benutzers auf bestimmte Werte zu beschränken, legen Sie die ReadOnly-Eigenschaft auf true fest. Mithilfe der TextAlign-Eigenschaft steuern Sie die Ausrichtung des Textes im Drehfeld. Um die Ausrichtung der Auf- und Ab-Schaltflächen relativ zum Textfeld des Steuerelements festzulegen, legen Sie die UpDownAlign-Eigenschaft entweder auf Left oder auf Right fest.
Die UpButton-Methode und die DownButton-Methode behandeln beim Überschreiben das Klicken auf die Auf- oder Ab-Schaltflächen. Die ValidateEditText-Methode und die UpdateEditText-Methode validieren beim Überschreiben den ausgewählten oder eingegebenen Wert und aktualisieren den im Drehfeld angezeigten Text. Wenn der Wert bei der Validierung als ungültig erkannt wird, wählen Sie den ungültigen Text mithilfe der Select-Methode aus. Dem Benutzer wird es hierdurch ermöglicht, den Text schnell zu korrigieren, indem er einfach einen neuen Wert eingibt, ohne dass der vorhandene Text manuell ausgewählt oder gelöscht werden muss.
Hinweise für Erben Wenn Sie UpDownBase vererben, müssen Sie die folgenden Member überschreiben: DownButton, UpButton, UpdateEditText und ValidateEditText.
Beispiel
Im folgenden Codebeispiel wird die abgeleitete Klasse NumericUpDown verwendet, und einige ihrer von UpDownBase abgeleiteten Eigenschaften werden festgelegt. Für diesen Code ist es erforderlich, dass Sie in einem Formular ein NumericUpDown-Steuerelement mit dem Namen numericUpDown1
, zwei ComboBox-Steuerelemente mit dem Namen comboBox1
und comboBox2
sowie drei CheckBox-Steuerelemente mit dem Namen checkBox1
, checkBox2
und checkBox2
erstellt haben. Fügen Sie der comboBox1
folgende Elemente hinzu: None
, Fixed3D
und FixedSingle
. Fügen Sie der comboBox2
folgende Elemente hinzu: Left
, Right
und Center
.
Sie können die Eigenschaftenwerte im Code zur Laufzeit ändern und so die Auswirkungen der einzelnen Eigenschaften auf Darstellung und Verhalten des Drehfelds nachvollziehen.
Private Sub comboBox1_SelectedIndexChanged(sender As Object, e As EventArgs)
' Set the BorderStyle property.
Select Case comboBox1.Text
Case "Fixed3D"
numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Case "None"
numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.None
Case "FixedSingle"
numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
End Select
End Sub
Private Sub comboBox2_SelectedIndexChanged(sender As Object, e As EventArgs)
' Set the TextAlign property.
Select Case comboBox2.Text
Case "Right"
numericUpDown1.TextAlign = HorizontalAlignment.Right
Case "Left"
numericUpDown1.TextAlign = HorizontalAlignment.Left
Case "Center"
numericUpDown1.TextAlign = HorizontalAlignment.Center
End Select
End Sub
Private Sub checkBox1_Click(sender As Object, e As EventArgs)
' Evaluate and toggle the ReadOnly property.
If numericUpDown1.ReadOnly Then
numericUpDown1.ReadOnly = False
Else
numericUpDown1.ReadOnly = True
End If
End Sub
Private Sub checkBox2_Click(sender As Object, e As EventArgs)
' Evaluate and toggle the InterceptArrowKeys property.
If numericUpDown1.InterceptArrowKeys Then
numericUpDown1.InterceptArrowKeys = False
Else
numericUpDown1.InterceptArrowKeys = True
End If
End Sub
Private Sub checkBox3_Click(sender As Object, e As EventArgs)
' Evaluate and toggle the UpDownAlign property.
If numericUpDown1.UpDownAlign = LeftRightAlignment.Left Then
numericUpDown1.UpDownAlign = LeftRightAlignment.Right
Else
numericUpDown1.UpDownAlign = LeftRightAlignment.Left
End If
End Sub
private void comboBox1_SelectedIndexChanged(Object sender,
EventArgs e)
{
// Set the BorderStyle property.
switch(comboBox1.Text)
{
case "Fixed3D":
numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
break;
case "None":
numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.None;
break;
case "FixedSingle":
numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
break;
}
}
private void comboBox2_SelectedIndexChanged(Object sender,
EventArgs e)
{
// Set the TextAlign property.
switch (comboBox2.Text)
{
case "Right":
numericUpDown1.TextAlign = HorizontalAlignment.Right;
break;
case "Left":
numericUpDown1.TextAlign = HorizontalAlignment.Left;
break;
case "Center":
numericUpDown1.TextAlign = HorizontalAlignment.Center;
break;
}
}
private void checkBox1_Click(Object sender,
EventArgs e)
{
// Evaluate and toggle the ReadOnly property.
if (numericUpDown1.ReadOnly)
{
numericUpDown1.ReadOnly = false;
}
else
{
numericUpDown1.ReadOnly = true;
}
}
private void checkBox2_Click(Object sender,
EventArgs e)
{
// Evaluate and toggle the InterceptArrowKeys property.
if (numericUpDown1.InterceptArrowKeys)
{
numericUpDown1.InterceptArrowKeys = false;
}
else
{
numericUpDown1.InterceptArrowKeys = true;
}
}
private void checkBox3_Click(Object sender,
EventArgs e)
{
// Evaluate and toggle the UpDownAlign property.
if (numericUpDown1.UpDownAlign == LeftRightAlignment.Left)
{
numericUpDown1.UpDownAlign = LeftRightAlignment.Right;
}
else
{
numericUpDown1.UpDownAlign = LeftRightAlignment.Left;
}
}
void comboBox1_SelectedIndexChanged( Object^ sender, EventArgs^ e )
{
// Set the BorderStyle property.
if ( !String::Compare( comboBox1->Text, "Fixed3D" ) )
{
numericUpDown1->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D;
}
else
if ( !String::Compare( comboBox1->Text, "None" ) )
{
numericUpDown1->BorderStyle = System::Windows::Forms::BorderStyle::None;
}
else
if ( !String::Compare( comboBox1->Text, "FixedSingle" ) )
{
numericUpDown1->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle;
}
}
void comboBox2_SelectedIndexChanged( Object^ sender, EventArgs^ e )
{
// Set the TextAlign property.
if ( !String::Compare( comboBox2->Text, "Right" ) )
{
numericUpDown1->TextAlign = HorizontalAlignment::Right;
}
else
if ( !String::Compare( comboBox1->Text, "Left" ) )
{
numericUpDown1->TextAlign = HorizontalAlignment::Left;
}
else
if ( !String::Compare( comboBox1->Text, "Center" ) )
{
numericUpDown1->TextAlign = HorizontalAlignment::Center;
}
}
void checkBox1_Click( Object^ sender, EventArgs^ e )
{
// Evaluate and toggle the ReadOnly property.
if ( numericUpDown1->ReadOnly )
{
numericUpDown1->ReadOnly = false;
}
else
{
numericUpDown1->ReadOnly = true;
}
}
void checkBox2_Click( Object^ sender, EventArgs^ e )
{
// Evaluate and toggle the InterceptArrowKeys property.
if ( numericUpDown1->InterceptArrowKeys )
{
numericUpDown1->InterceptArrowKeys = false;
}
else
{
numericUpDown1->InterceptArrowKeys = true;
}
}
void checkBox3_Click( Object^ sender, EventArgs^ e )
{
// Evaluate and toggle the UpDownAlign property.
if ( numericUpDown1->UpDownAlign == LeftRightAlignment::Left )
{
numericUpDown1->UpDownAlign = LeftRightAlignment::Right;
}
else
{
numericUpDown1->UpDownAlign = LeftRightAlignment::Left;
}
}
private void comboBox1_SelectedIndexChanged(Object sender, EventArgs e)
{
// Set the BorderStyle property.
if (comboBox1.get_Text().Equals("Fixed3D")) {
numericUpDown1.set_BorderStyle(BorderStyle.Fixed3D);
}
else {
if (comboBox1.get_Text().Equals("None")) {
numericUpDown1.set_BorderStyle(BorderStyle.None);
}
else {
if (comboBox1.get_Text().Equals("FixedSingle")) {
numericUpDown1.set_BorderStyle(BorderStyle.FixedSingle);
}
}
}
}//comboBox1_SelectedIndexChanged
private void comboBox2_SelectedIndexChanged(Object sender, EventArgs e)
{
// Set the TextAlign property.
if (comboBox2.get_Text().Equals("Right")) {
numericUpDown1.set_TextAlign(HorizontalAlignment.Right);
}
else {
if (comboBox2.get_Text().Equals("Left")) {
numericUpDown1.set_TextAlign(HorizontalAlignment.Left);
}
else {
if (comboBox2.get_Text().Equals("Center")) {
numericUpDown1.set_TextAlign(HorizontalAlignment.Center);
}
}
}
} //comboBox2_SelectedIndexChanged
private void checkBox1_Click(Object sender, EventArgs e)
{
// Evaluate and toggle the ReadOnly property.
if (numericUpDown1.get_ReadOnly()) {
numericUpDown1.set_ReadOnly(false);
}
else {
numericUpDown1.set_ReadOnly(true);
}
} //checkBox1_Click
private void checkBox2_Click(Object sender, EventArgs e)
{
// Evaluate and toggle the InterceptArrowKeys property.
if (numericUpDown1.get_InterceptArrowKeys()) {
numericUpDown1.set_InterceptArrowKeys(false);
}
else {
numericUpDown1.set_InterceptArrowKeys(true);
}
} //checkBox2_Click
private void checkBox3_Click(Object sender, EventArgs e)
{
// Evaluate and toggle the UpDownAlign property.
if (numericUpDown1.get_UpDownAlign().Equals(LeftRightAlignment.Left)) {
numericUpDown1.set_UpDownAlign(LeftRightAlignment.Right);
}
else {
numericUpDown1.set_UpDownAlign(LeftRightAlignment.Left );
}
} //checkBox3_Click
} //Form1
Vererbungshierarchie
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ContainerControl
System.Windows.Forms.UpDownBase
System.Windows.Forms.DomainUpDown
System.Windows.Forms.NumericUpDown
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
UpDownBase-Member
System.Windows.Forms-Namespace
NumericUpDown-Klasse
DomainUpDown-Klasse