Freigeben über


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