Public Class DataGridCurrencyColumn
Inherits System.Windows.Forms.DataGridTextBoxColumn
Dim TB As System.Windows.forms.TextBox
Public Sub New()
MyBase.New()
TB = Me.TextBox
TB.CausesValidation = True
AddHandler TB.KeyPress, AddressOf CurrencyKeyPress
AddHandler TB.Validating, AddressOf CurrencyValidating
End Sub
Protected Sub CurrencyValidating(ByVal Sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
Dim Val As Decimal
Try
Val = Decimal.Parse(TB.Text)
Catch ex As Exception
Val = 0
End Try
TB.Text = Microsoft.VisualBasic.Format(Val, "0.00")
End Sub
Protected Sub CurrencyKeyPress(ByVal Sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim keyascii As Integer
keyascii = Asc(e.KeyChar)
Select Case keyascii
Case 45, 46, 48 To 57, 8, 13 'numbers, decimal, backspace, return, minus
Case Else
keyascii = 0
End Select
If keyascii = 0 Then
e.Handled = True
Else
e.Handled = False
End If
End Sub
End Class