domingo, 28 de marzo de 2010

Deshabilitar el botón cerrar [X] de Formularios en Visual Basic 2005/2008

Para los que lo necesiten dejo este código que está en la documentación de MSDN (Clase CreateParams) y también encontré buscando en la red.

El presente código debe ir luego de Public Class NombreFormulario:
Dim _enabledCerrar As Boolean = False
< System.ComponentModel.DefaultValue(False), System.ComponentModel.Description( "Define si se habilita el botón cerrar en el formulario" )> _
Public Property EnabledCerrar() As Boolean
    Get
         Return
_enabledCerrar
   End Get
   Set
(ByVal Value As Boolean)
     If _enabledCerrar <> Value Then
         _enabledCerrar = Value
     End If
  End Set
End Property
Protected Overrides ReadOnly Property CreateParams() As CreateParams
      Get
               Dim cp As CreateParams = MyBase.CreateParams
               If _enabledCerrar = False Then
                    Const CS_NOCLOSE As Integer = &H200
                    cp.ClassStyle = cp.ClassStyle Or CS_NOCLOSE
               End If
               Return cp
     End Get
End Property

 

Espero les sirva

sábado, 20 de marzo de 2010

TextBox Solo Números con Punto Decimal en .NET

Bien, se que hay muchos ejemplos en la red de cómo hacer esto, pero uno mas no viene mal.

Bueno esto es un procedimiento Sub, que lo podemos poner en un modulo de nuestro proyecto y evitarnos validar todo el código en cada textbox, por supuesto que se puede mejorar mucho mas, pero de momento lo dejo así

Public Sub NumConFrac(ByVal CajaTexto As Windows.Forms.TextBox, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
       ElseIf e.KeyChar = "." And Not CajaTexto.Text.IndexOf(".") Then
            e.Handled = True
        ElseIf e.KeyChar = "." Then
            e.Handled = False
       Else
            e.Handled = True
       End If
  End Sub

Eso es todo el sub

Ahora para llamarlo desde cualquier Textbox que necesitemos ingresar solo números, para lo cual solo agregaríamos la siguiente línea:

Private Sub TxtImporte_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtImporte.KeyPress
        NumConFrac(Me.TxtImporte, e)
End Sub

 

Posteriormente si quieren visualizar el importe formateado, solo quedaría agregar lo siguiente luego pulsar ENTER

Me.TxtImporte.Text = Format(CDec(Me.TxtImporte.Text), "###,###.00")

 

Espero les sirva de algo

Hasta la próxima