winform 获得焦点 在线等 急
界面有 a,b,c,d 四个文本框 按abcd先后顺序来输入值 ,每个控件都写了 enter和 leave事件,
比如现在焦点在a文本框 但是没有输入值,直接按了tab键 焦点到了b文本框
我在b文本框的enter事件里 判断a文本框是否是string.Empty,如果是就弹出提示框 “a文本框没输入值”
然后把焦点移到a文本框 但是 他一直弹出提示死循环了
b的leave事件里写的是 判断如果a为string.empty 则把焦点移到a文本框 否则移到文本框
c文本框写的事件跟b文本框差不多
//a 文本框private void txtTSPName_Enter(object sender, EventArgs e) { if (txtTSPName.Text.Trim() != string.Empty && txtTrayCode.Text.Trim() != string.Empty ) { MessageBox.Show("不能更改承运商编码", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); if (txtGoodCode.Text == string.Empty) txtGoodCode.Focus(); if(txtWeight.Text==string.Empty)txtWeight.Focus(); } } private void txtTSPName_Leave(object sender, EventArgs e) { txtTrayCode.Focus(); }//b文本框 private void txtTrayCode_Enter(object sender, EventArgs e) { if (txtTSPName.Text.Trim() == string.Empty) { MessageBox.Show("请先输入承运商编码", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtTSPName.Focus(); } else if (txtTSPName.Text.Trim() != string.Empty && txtTrayCode.Text.Trim() != string.Empty && txtGoodCode.Text.Trim() != string.Empty) { MessageBox.Show("不能更改托盘号", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); if (txtGoodCode.Text == string.Empty) txtGoodCode.Focus(); if (txtWeight.Text == string.Empty) txtWeight.Focus();//txtWeight是d文本框 } } private void txtTrayCode_Leave(object sender, EventArgs e) { if (txtTSPName.Text == string.Empty) { txtTSPName.Focus(); } else { txtGoodCode.Focus(); } }//c 文本框private void txtGoodCode_Enter(object sender, EventArgs e) { if (txtTSPName.Text.Trim() == string.Empty) { MessageBox.Show("请先输入承运商编码", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtTSPName.Focus(); } else if (txtTrayCode.Text.Trim() == string.Empty) { MessageBox.Show("请先扫描托盘号", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtTrayCode.Focus(); } } private void txtGoodCode_Leave(object sender, EventArgs e) { txtWeight.Focus(); }