当前位置: 首页 > 知识库问答 >
问题:

通过键入以下命令在windows窗体listbox中选择一项?

丁曦
2023-03-14

我有一个包含国家/地区名称的列表框。我在VS2015(C#)中使用Windows Forms。
通过键入在列表框中选择名称时,它只允许一个字母。因此,如果我键入“A”,它将跳转到以“A”开头的第一项,但如果我按“As”,列表框将查看以“s”开头的项目。我找到了组合框和文本框的答案:
通过键入在组合框中选择一个项目
,但看起来像列表框不支持自动完成模式。有什么解决方案吗?

共有3个答案

解念
2023-03-14

请检查这个:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/a8e31841-1ba9-4990-b0e3-bdee489555af/autocomplete-textbox-on-listbox?forum=csharpgeneral

或者这个:http://vbcity.com/blogs/xtab/archive/2012/09/22/windows-forms-combining-autocomplete-and-listbox-selection.aspx

宗穆冉
2023-03-14

下面是一些示例代码。将文本框放在列表框上方。适当地连接 TextChanged 事件,这应该模仿组合框的自动完成行为(例如)...

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        listBox1.Items.AddRange(new[] { "Tom", "Dick", "Harry", "Henry" });
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        var textBox = (TextBox)sender;
        listBox1.SelectedIndex = textBox.TextLength == 0 ?
            -1 : listBox1.FindString(textBox.Text);
    }
}
竺展
2023-03-14

请考虑实现您自己的搜索方法。列表框在设计上不支持所需的功能。无论如何,您可以在TextBox的TextChanged事件上准备一个方法,该方法在集合中搜索结果。

 类似资料:
  • 问题内容: 我在MySQL中有以下语言表,用于选择其他语言的文本。 该表包含以下数据 组字段告诉我每种翻译属于哪些文本。在上面的示例中,组“ 3”具有默认文本(英语)和德语翻译。 现在,我想选择德语的所有文本,如果不存在,我将要使用后备英语文本。 有人知道如何将它们整合到SQL语句中吗? 问题答案: SQLFiddle演示

  • 这是我第二次发布相同的问题,直到现在都没有得到答案。 我有一个组合框,下面是商店(ExtJs 2.3) 组合存储: 分配 会议 工资 我在键上过滤组合,这样“薪水”项就不会显示在列表中,它工作正常。但是由于组合框项也可以通过键入iside combobox来选择,所以我在组合框的keyUp和beforeQuery上编写了以下代码。 这成功地过滤掉了“薪水”选项,但现在我无法像以前一样通过键入内部组

  • 我想使用Windows 10上的命令行中的,以及许多其他Linux工具。我知道有GnuWin32和其他二进制替代品,但没有一个能像Linux的Windows子系统(WSL)那样优雅地工作;包括更新机制。 使用WSL,可以调用

  • 问题内容: 可以在调用“ java jar jar_name.jar”时指定要使用的JVM。我的机器上安装了两个JVM。我无法更改JAVA_HOME,因为它可能会破坏所有准备就绪的代码。 亲切的问候 史提芬 问题答案: 是的-仅显式提供java.exe的路径。例如: 对于正在运行的命令外壳,最简单的方法是: 例如,这是一个完整的会话,显示我的默认JVM,然后是路径的更改,然后是新的: 但是,这不会

  • 我有一个从数据库中提取下拉选项的工厂: 然后,我将该数据应用于控制器中的下拉列表/选择: 下面是select标记的外观: 放入$scope的下拉列表数据。临床DDL如下所示: 从 DB 返回的用户数据如下所示: 在我的控制器中,我填充了下拉列表/选择,然后我获取了一个用户ID并将其提交给DB以获取用户信息。这些用户信息会返回。然后,我想根据DB返回的“DefaultLocationId”从先前填充

  • 我正在创建一个简单的应用程序,使用GMap在c#上处理地图。NET控件。所以,我的问题是:我想用另一种形式制作多边形、多段线和标记。我的代码是: 第一种形式(MapModule): 第二种形式(新文件): 输出是: 谷歌地图。“MapModule.polylineOverlay”由于其保护级别而不可访问 我想,这一定很简单,但我对编程完全陌生。