Вам не нужно вызывать InitializeComponent()
при нажатии клавиши, потому что это вернет объект в его состояние по умолчанию. Вот почему вы не видите изменений в winform.
void Neededtype_KeyDown(object sender, KeyEventArgs e)
{
if (neededkey == e.KeyCode)
{
neededtype.ForeColor = Color.FromName("Gray");
mostanikari++;
if (mostanikari == 2)
{
neededtype.Text = "work";
}
neededtype.SelectionStart = mostanikari;
kovikari = mostaniszo[mostanikari].ToString();
neededtype.SelectionLength = neededtype.Text.Length;
neededtype.SelectionColor = Color.FromName("Blue");
if (mostanikari == neededtype.Text.Length)
{
//random word gen here
}
}
}