Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

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)

[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
[ComVisibleAttribute(true)] 
public abstract class UpDownBase : 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

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.

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 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;
     }
 }
 

    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 

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

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

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.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0
Anzeigen: