Buenos dias, tengo un problema con mis textbox. Tengo el focus para uno en especifico pero cuando intento diguitar en los otros se me activa en el que tengo el focus. Como puedo hacer de que el textbox que tengo el focus solo se active cuando escaneo (por que solo para eso lo ocupo). Este es mi codigo.
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!txtescaner.Focused)
{
txtescaner.Focus();
txtescaner.Text += e.KeyChar;
// Move el cursor al final
txtescaner.SelectionStart = txtescaner.Text.Length;
if (Char.IsNumber(e.KeyChar) || (char.IsSymbol(e.KeyChar)))
{
e.Handled = false;
}
else if (Char.IsLetter(e.KeyChar))
{
MessageBox.Show("Solo se permiten numeros", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
e.Handled = true;
txtescaner.Clear();
return;
}
}
}
Gracias.
Оно могло бы функционировать, если ты помещаешь другие text box в if
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (txtbox.Focused || txtbox2.Focused || txtbox3.Focused)
{
txtescaner.Focus();
txtescaner.Text += e.KeyChar;
// Move el cursor al final
txtescaner.SelectionStart = txtescaner.Text.Length;
if (Char.IsNumber(e.KeyChar) || (char.IsSymbol(e.KeyChar)))
{
e.Handled = false;
}
else if (Char.IsLetter(e.KeyChar))
{
MessageBox.Show("Solo se permiten numeros", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
e.Handled = true;
txtescaner.Clear();
return;
}
}
}
Я думаю, что он из-за if ее первый lГ-nea кода (if (!txtescaner.Focused)
), там ты спрашиваешь, если этот textbox не находится в focus. false ты вводишь существо и вторая lГ-nea помещает себе в focus txtescaner.Focus();
Ты был бы должен снимать первый if
Событие, которое манипулирует состоянием focus, называется Form1_KeyPress, а следовательно возможно, что ошибка состоит в том, что бросается событие каждый раз, когда ты нажимаешь на клавишу внутри формуляра. (Бросается событие на уровне формуляра).
AsegГєrate, которого событие это бросило TextBox, который должен.