One other nasty surprise with .Net for VB6 programmers is that arrays in .NET are 0-based whereas, VB6 functions such as Left, Mid & Right are 1-based. That is, Mid(myString,1,1) starts from the first character in myString. myString.substring(1,1) actually returns the second character, as the first character is position 0 in the string array.
Also, myString.Length returns the number of characters in your string. If you want the last character is your string you need to subtract one from length.
For example:
dim myString as string = "hello"
' Character positions
' 0 1 2 3 4
' h e l l o
console.writeline(myString.length()) ' = 5 -- equivelent to Lent(myString)
console.writeline(myString.substring(0,2) ' = he -- equivelent to left(myString, 2)
console.writeline(myString.substring(1,1) ' = e -- equivelent to mid(mystring, 2,1)
console.writeline(myString.substring(myString.Length -1 - 2) ' lo -- equivelent to right(myString, 2)