Как сказал @Alexander, удалите:
textBox4.Text = " ";
Вы также можете изменить событие, которое вы перехватили, на textBox4_Validated, которое будет происходить только после выхода из textBox (Вы можете оставить KeyDown и только перехватить Enterключ к принудительной проверке textBox).
Если ваша цель - только цифровые цифры, вы можете добавить тест, чтобы проверить, действительно ли это только цифры.
Еще один совет, если вы можете запрограммироватьВаш сканер, в конце отсканированной строки вы должны добавить определенный символ (например, \ n или что-то, что вы знаете, никогда не будет в реальном коде).Таким образом, вы можете отсканировать все свои коды подряд, затем разбить последнюю строку и выполнить код в foreach.
Последний пункт, который не очень важен здесь, когда вы ловите нажатие клавиши, как здесь просточтобы выполнить некоторый код, и вы не хотите, чтобы этот keyPress был эффективно добавлен в ваш textBox или еще, добавьте это:
e.SuppressKeyPress = true;
e.Handled = true;
Я не совсем уверен, что именно это делает, но если я хорошо понял,первая строка будет указывать, что keyPress становится таким, как если бы это никогда не происходило, а вторая сообщает системе, что keyPress была правильно использована и обработана, поэтому ей больше не нужно вмешиваться.
Надеюсь, этопомог