我的表单有一个输入文本框,listview for save。
文本框中的用户输入编号,输入输入,程序检查输入编号长度和重复
textbox KeyUp事件
private void txb_MList_num_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (check_MList_dup())
{
lstv_MList.Items.Add(txb_MList_num.Text);
allList.Add(txb_MList_num.Text);
txb_MList_num.Text = "";
}
}
}
check_MList_dup()
private bool check_MList_dup()
{
bool OK = true;
if (txb_MList_num.TextLength < 11)
{
MessageBox.Show("Input more text(length = 11)");
return false;
}
else
{
for (int i = 0; i < allList.Count; i++)
if (allList[i].Equals(txb_MList_num.Text))
{
MessageBox.Show("It's duplication.");
return false;
}
}
return OK;
}
但用户输入进入关闭MessageBox,程序再次显示MessageBox,再次......使用鼠标之前。
我调试它使用断点,当MessageBox显示时,事件不存在。
但是删除断点,重复MessageBox。
我使用e.KeyCode == Keys.Enter && this.Focused
但this.Focused
始终返回false
。
如何关闭MessageBox?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用PreviewKeyDown:
private void OnPreviewKeyDown(object sender, KeyEventArgs e)
{
if (Keyboard.IsKeyDown(Key.Enter))
{
// Do your staff here...
}
}