Cómo desenfocar un botón cuando el escáner de código de barras envió datos que terminaron con nueva línea

Estoy escribiendo una aplicación de código de barras C #. Tengo una expresión regular EAN-13 para detectar códigos de barras en la función "Form1_KeyPress". No tengo ningún mecanismo para detectar de dónde proviene la entrada. Aquí está mi problema:

Tengo un botón de reinicio en el formulario que borra todos los campos y códigos de barras enumerados en un dataGridView. Cuando hice clic en él, se enfoca normalmente. Cuando tiene foco, si leo un código de barras a través del escáner de código de barras, la nueva línea al final de cada lectura de código de barras hace que se haga clic en este botón, lo que borra todos los campos. Por lo tanto, los códigos de barras leídos se agregan a dataGridView pero se eliminan inmediatamente debido a la activación de restablecer bu, tton.

Mi solución actual es centrarme en un cuadro de texto de solo lectura al final de cada función "button_Click", pero no quiero escribir una línea irrelevante al final de cada función de "clic" de los botones. ¿Que recomiendas? (por cierto, no puedo evitar presionar la tecla enter en la función de tecla del formulario)

Respuestas a la pregunta(2)

Su respuesta a la pregunta