Esta documentación está archivada y no tiene mantenimiento.

UpDownBase (Clase)

Implementa la funcionalidad básica requerida por un cuadro de número (también conocido como un control de flechas).

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public abstract class UpDownBase : ContainerControl
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public abstract class UpDownBase extends ContainerControl
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public abstract class UpDownBase extends ContainerControl
No aplicable.

Un cuadro de número está formado por un cuadro de texto y una pequeña barra de desplazamiento vertical que comúnmente se denomina control de botón de número. La clase UpDownBase enlaza ambos controles y permite al usuario cambiar la información del cuadro de texto al hacer clic en los botones Arriba o Abajo o al escribir el tipo de valor correcto directamente en el cuadro de texto. Utilice el cuadro de número cuando desee limitar la lista de valores que puede seleccionar un usuario, como ocurre en un cuadro de lista o un cuadro combinado. En función del tipo de lista que desee mostrar, la ventaja de utilizar un cuadro de número es que permite establecer rápidamente un intervalo de valores válidos, en lugar de agregar los elementos de uno en uno. La implementación de un cuadro de número requiere una validación de datos menor que la de un cuadro de texto, ya que se puede limitar el tipo de datos al derivar una clase de UpDownBase. Un ejemplo es la clase NumericUpDown, que limita los valores al tipo numérico y utiliza una propiedad Minimum y Maximum para validar los datos.

Para que el usuario pueda utilizar las teclas de dirección para cambiar el contenido del cuadro de número, establezca la propiedad InterceptArrowKeys en true. Para limitar la entrada del usuario a los valores que se especifiquen, establezca la propiedad ReadOnly en true. Para controlar la alineación de texto en el cuadro de número, establezca la propiedad TextAlign. Para establecer la alineación de los botones Arriba y Abajo en relación con la parte de cuadro de texto del control, establezca la propiedad UpDownAlign en Left o Right.

Cuando se omiten los métodos UpButton y DownButton, se controla la acción del clic en los botones Arriba y Abajo. Al omitirse, los métodos ValidateEditText y UpdateEditText validan el valor (seleccionado o escrito) y actualizan el texto que aparece en el cuadro de número. Si el valor no pasa la validación, utilice el método Select para seleccionar el texto no válido. De este modo, el usuario podrá corregir rápidamente el texto con sólo escribir un nuevo valor, sin tener que seleccionar o eliminar manualmente el texto existente.

Notas para los herederos: Al heredar de UpDownBase, es necesario reemplazar los siguientes miembros:DownButton, UpButton, UpdateEditText y ValidateEditText.

El siguiente ejemplo de código utiliza la clase derivada NumericUpDown y establece algunas de sus propiedades derivadas de UpDownBase. Este código requiere que tenga un control NumericUpDown denominado numericUpDown1, dos controles ComboBox denominados comboBox1 y comboBox2, y tres controles CheckBox denominados checkBox1, checkBox2 y checkBox2 creados en un formulario. Agregue los elementos siguientes a comboBox1: None, Fixed3D y FixedSingle. Agregue los elementos siguientes a comboBox2: Left, Right y Center.

El código permite cambiar los valores de la propiedad en tiempo de ejecución y ver cómo afecta cada uno a la apariencia y al comportamiento del cuadro de número.

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

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
Mostrar: