【问题标题】:C# and backspace detection in textbox in order to reload listbox文本框中的 C# 和退格检测以重新加载列表框
【发布时间】:2013-06-16 20:29:27
【问题描述】:

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

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

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

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

我也试过KeyDown

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

非常感谢您的帮助。

【问题讨论】:

  • 地铁?表格? WPF?银光?视窗电话? ASP.NET?单触?
  • 您是否在属性中启用了 keyPreview 事件?

标签: c# winforms


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    TextChanged 事件使用示例:

    private void textBox_TextChanged(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(((TextBox)sender).Text))
        {
                // reload database
        }
    }
    

    【讨论】:

    • 你太棒了!!!太感谢了!!!如果你住在多伦多,我会给你买啤酒!还要感谢所有与他们的 cmets 一起发布的人。非常感激! :)
    • 不用担心 :) 您可以将其标记为答案。 @EssiJoon
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多