Если честно то проблемы с преобразованием возникли в C# я VB вообще не пользовался пытался перевести вот что получилось.
Код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Dictionary<char, string> words = new Dictionary<char, string>();
Dictionary<string, char> words1 = new Dictionary<string, char>();
public Form1()
{
InitializeComponent();
words.Add('а', "a");
words.Add('б', "b");
words.Add('в', "v");
words.Add('г', "g");
words.Add('д', "d");
words.Add('е', "e");
words.Add('ё', "yo");
words.Add('ж', "zh");
words.Add('з', "z");
words.Add('и', "i");
words.Add('й', "j");
words.Add('к', "k");
words.Add('л', "l");
words.Add('м', "m");
words.Add('н', "n");
words.Add('о', "o");
words.Add('п', "p");
words.Add('р', "r");
words.Add('с', "s");
words.Add('т', "t");
words.Add('у', "u");
words.Add('ф', "f");
words.Add('х', "h");
words.Add('ц', "c");
words.Add('ч', "ch");
words.Add('ш', "sh");
words.Add('щ', "sch");
words.Add('ъ', "j");
words.Add('ы', "i");
words.Add('ь', "j");
words.Add('э', "e");
words.Add('ю', "yu");
words.Add('я', "ya");
words1.Add("a", 'а');
words1.Add("b",'б');
words1.Add("c", 'ц');
}
private void textBox4_TextChanged(object sender, EventArgs e)
{
}
//Obratnaya transliteraciya
private void textBox3_TextChanged(object sender, EventArgs e)
{
string source = textBox3.Text;
int i=0;
string BufStr = textBox3.Text;
for ( i = 0; i < source.Length -3; i++)
{
BufStr = source + source[i + 1] + source[i + 2];
if (words1.ContainsKey(BufStr))
{
textBox4.Text = BufStr;
i = i + 2;
}
BufStr = source ;
if(words1.ContainsKey(BufStr))
{
textBox4.Text = BufStr;
}
textBox4.Text = BufStr;
}
if( i < source.Length - 3)
{
BufStr = source + source [i + 1] + source [i + 2];
if(words1.ContainsKey(BufStr))
{
textBox4.Text = BufStr;
i = i + 3;
}
}
if(i < source.Length - 2)
{
BufStr = source + source [i + 1];
if(words1.ContainsKey(BufStr))
{
textBox4.Text = BufStr;
i = i + 2;
}
}
}
//konec
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void textBox1_TextChanged_1(object sender, EventArgs e)
{
string source = textBox1.Text;
string destiny = null;
for (int i = 0; i < source.Length; i++)
{
if (words.ContainsKey(source[i]))
destiny = destiny + words[source[i]];
else
destiny = destiny + source[i];
}
System.Text.StringBuilder sb = new System.Text.StringBuilder(destiny);
for (int j = 0; j < sb.Length; j++)
{
if (System.Char.IsLower(sb[j]) == true)
sb[j] = System.Char.ToLower(sb[j]);
else if (System.Char.IsUpper(sb[j]) == true)
sb[j] = System.Char.ToUpper(sb[j]);
}
string corrected = sb.ToString();
textBox2.Text = corrected;
}
}
}
но оно не работает я добавил еще два текстбокса и работал с ними.Если можно то переведите мне на с-шарп с VB.