在for循环中使用escape键退出
我有这个循环并正在工作:
for (int x = 0; x < nombres.Length; x++) { ValidXX.Text = x.ToString(); ValidXY.Text = nombres.Length.ToString(); origen = nombres[x]; cambia = nombres[x]; pedrito = control.ValidarDocumentoXML(cambia); if (pedrito == true) { } else /* File.Move (origen , destino );*/ try { } catch(IOException iox) { MessageBox.Show(iox.Message); } { /* corrupto[x] = cambia; */ MessageBox.Show("malo" + cambia); } }
我想用转义键打破这个循环,我试试这个:
private void Importar2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { } }
但我无法将此key_down写入for循环。
你可以这样做:
bool escPressed = false; .... //run your loop in a different thread Thread thread = new Thread(new ThreadStart(MyLoop)); thread.Start(); .... void MyLoop() { for (int x = 0; x < nombres.Length; x++) { if(escPressed) break; ValidXX.Text = x.ToString(); ValidXY.Text = nombres.Length.ToString(); origen = nombres[x]; cambia = nombres[x]; pedrito = control.ValidarDocumentoXML(cambia); if (pedrito == true) { } else /* File.Move (origen , destino );*/ try { } catch(IOException iox) { MessageBox.Show(iox.Message); } { /* corrupto[x] = cambia; */ MessageBox.Show("malo" + cambia); } } } private void Importar2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { escPressed = true;} }