0

作为我班级作业的一部分,我有一个连接到数据库的列表框,它显示学生的名字和姓氏。我还创建了一个搜索功能,用户在其中输入他们在文本框中寻找的名字和/或姓氏,当他们按下“搜索”按钮时,它会显示过滤后的结果出现在列表框中。

问题的最后一部分要求我检测用户何时清除文本框,以再次在列表框中显示原始数据。我有一个名为 databaseload() 的方法中的数据,所以这真的取决于我如何让我的程序检测到列表框再次为空。

我在网上找到了一些东西,当我尝试它们时,它不起作用。

private void searchTextBox_KeyPress(object sender, KeyPressEventArgs e){
  if (e.KeyChar == 8)
  {
    databaseload();
  }
}

我也试过KeyDown

我也不希望它在检测到第一个退格键时重新加载。我希望它在 searchTextBox 中没有任何内容时重新加载列表框。

非常感谢您的帮助。

4

2 回答 2

1

您应该处理KeyUp在将密钥输入文本后触发的事件。

于 2012-10-28T02:16:14.843 回答
0

有一个TextChanged事件似乎比手动检测退格键更合适。该delete键也可以删除所有文本,或者有人可能只是突出显示所有文本并将cut其添加到剪贴板。

TextChanged使用事件的示例:

private void textBox_TextChanged(object sender, EventArgs e)
{
    if (string.IsNullOrEmpty(((TextBox)sender).Text))
    {
            // reload database
    }
}
于 2012-10-28T02:22:23.453 回答