26 Oct 2009

SQL Server 2008 & Windows 7

We have just moved Arkle ePos to use SQL Server 2008. No problems at all.
We have also tested on Windows 7 (32 bit) and it works.

7 Oct 2009

Enums / Data Binding

I use enums in my code a lot.
Often I have to set the various enumerations into the text in a text box. This is simple:

Me.ComboBoxGameCode.DataSource = System.Enum.GetValues(GetType(NumbersGameDraw.GameType))

This is nice but not great.
Say we have enums representing multiple words (for example the following)
Paid
NotPaid (we would like NotPaid to display as Not Paid).

So I created enumhelper class to do this:

Public Class EnumHelper
Private Shared Function ChangeHungarianTextToSeperateWords(ByVal originalText As String) As String

Dim strOutput As String = ""
Dim i As Integer = 0
While i < originalText.Length
Dim char1 As Char
char1 = originalText.Substring(i, 1)

If Char.IsUpper(char1) Then
strOutput &= " " & char1
Else
strOutput &= char1
End If
i += 1
End While
Return strOutput.Trim

End Function

Public Shared Function GetEnumSeperateWordsList(ByVal enumType As Type) As ArrayList
Dim x = System.Enum.GetNames(enumType)
Dim y As New ArrayList

For Each item1 As Object In x
'item1 = Me.ChangeHungarianTextToSeperateWords(item1)
y.Add(EnumHelper.ChangeHungarianTextToSeperateWords(item1))
Next
Return y

End Function
End Class

6 Oct 2009

Numeric Up Down and the tab key

When users have to enter data in numerous numeric up down and tab between them, they can't just key the new amount.

Say 1 is in the numeric up down they have just tabbed to and they type 2, it will go to 21 (instead of 2 which they wanted).

So for this I have put a bit of code on the got focus

Private Sub NumericUpDown1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles NumericUpDown1.GotFocus
Me.NumericUpDown1.Select(0, Me.NumericUpDown1.Value.ToString.Length)
End Sub



Private Sub NumericUpDown2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles NumericUpDown2.GotFocus
Me.NumericUpDown2.Select(0, Me.NumericUpDown1.Value.ToString.Length)
End Sub

This selects the whole value and allows them to type.
Why does the control not just behave like this in the first place?

Also I'm toying with setting background colours to yellow when controls have focus and back to white when they do not, this is much better than the less subtle built in controls.