¿Cómo hacer un TextBox que solo acepte números enteros o decimales en C# .net Windows Forms?

Para el caso de obligar a un TextBox en Windows forms para que solo acepte números, tenemos que agregar una funciona al textbox en su evento KeyPress. Esto lo podemos hacer dando clic en el control y en la pantalla de propiedades seleccionar el botón de eventos (el relámpago) y dar doble clic en el evento llamado KeyPress. Una vez que se asigna una función automática, ponemos el siguiente código:

private void MiTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
         if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) )
         {
             e.Handled = true;
         }
}

Con eso bastara para obligar a tu control a no permitir letras ni otros caracteres que no sean números.

Podemos hacer lo mismo para números con decimales, pegando el siguiente código.

private void MiTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
          if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
          {
                e.Handled = true;
          }

            // solo 1 punto decimal
            if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
          {
                e.Handled = true;
          }
}

Crear la factura electrónica del SAT desde PHP, ejecutando C# .Net. XML, Sellado, Timbrado. Cfdi 3.3

En este video te enseñare como puedes crear el XML y timbrarlo, esto ejecutando código ya compilado de C# .Net enviándole los valores de la factura desde PHP.

Descargar código fuente

Curso gratis para conectar cerradura eléctrica con .Net y Arduino, Código en c# .Net y arduino.

En este curso te enseñare a hacer una puerta conectada a arduino y .Net.

Este curso te servirá para que seas capaz de crear sistemas de automatización de puertas.

El curso es gratuito pero cualquier aportación voluntaria es bien recibida dando clic aquí.

1.- Materiales

2.- Conexiones

3.- Código

En esta entrada se encuentra el código fuente, por si deseas copiar y pegar.

¿Cómo obtener un objeto Color a partir de un hexadecimal en C# .Net?

Para obtener un objeto Color con los valores adecuados a partir de un valor hexadecimal, lo podemos hacer haciendo uso de la clase ColorTranslator la cual sirve para este propósito y lo podemos hacer de la siguiente manera:


//color blanco
Color oColor1= System.Drawing.ColorTranslator.FromHtml("#ffffff"); 

//color negro
Color oColor2= System.Drawing.ColorTranslator.FromHtml("#000000"); 

Curso gratis Vue y C# .Net CORE

Este es un curso gratuito donde veremos cómo combinar el framework progresivo Vue con la tecnología .Net Core.

El curso está en progreso por lo cual te sugiero que te suscribas a mi canal de youtube, de esta manera estarás notificado cada que se suba un nuevo video.

1.- Integración

2.- Programación reactiva, directiva v-model

3.- Solicitudes AJAX Get, controladores en MVC .Net

4.- Base de datos con Entity Framework, directiva v-for

¿Cómo obligar al comando xsd.exe a poner el nombre que deseemos a nuestra clase de c# creada a partir de archivos xsd?

Para todos los que hemos trabajado con facturación electrónica nos resulta común crear nuestras clases a partir de los archivos xsd otorgados por hacienda.

Hay un bug cuando creamos nuestra clase a partir de muchos xsd con la aplicación xsd.exe ya que esta le agrega al nombre final la concatenación de los nombres de todos los archivos utilizados, pero en Windows tenemos una limitante de 248 caracteres.

Por ejemplo para la facturación electrónica de Colombia tenemos que utilizar más de 10 archivos xsd y lo normal es que utilizáramos un comando así:

xsd 
DIAN_UBL.xsd DIAN_UBL_Structures.xsd xmldsig-core-schema.xsd CodeList_CurrencyCode_ISO_7_04.xsd CodeList_LanguageCode_ISO_7_04.xsd CodeList_MIMEMediaTypeCode_IANA_7_04.xsd CodeList_UnitCode_UNECE_7_04.xsd UBL-CommonAggregateComponents-2.0.xsd UBL-CommonBasicComponents-2.0.xsd UBL-CommonExtensionComponents-2.0.xsd UBL-ExtensionContentDatatype-2.0.xsd UBL-QualifiedDatatypes-2.0.xsd UnqualifiedDataTypeSchemaModule-2.0.xsd /classes

El cual nos dará un error ya que la concatenación del nombre del archivo resultante supera los 248 caracteres.
Para otorgarle un nombre de salida debemos hacer lo siguiente:

xsd DIAN_UBL_Structures.xsd xmldsig-core-schema.xsd CodeList_CurrencyCode_ISO_7_04.xsd CodeList_LanguageCode_ISO_7_04.xsd CodeList_MIMEMediaTypeCode_IANA_7_04.xsd CodeList_UnitCode_UNECE_7_04.xsd UBL-CommonAggregateComponents-2.0.xsd UBL-CommonBasicComponents-2.0.xsd UBL-CommonExtensionComponents-2.0.xsd UBL-ExtensionContentDatatype-2.0.xsd UBL-QualifiedDatatypes-2.0.xsd UnqualifiedDataTypeSchemaModule-2.0.xsd .\DIAN_UBL.xsd /classes

Poniendo .\DIAN_UBL.xsd antes del parámetro /clases hará que nuestro archivo final se llame DIAN_UBL.cs.

Video explicando paso a paso: