文本框自动完成无法正常工作

2023-12-11

我正在尝试使用数组形式的自定义数据源实现文本框自动完成,该数据源显示有关单字符输入的建议。但是当我运行该程序时,自动完成功能仅在第二个字符输入后启动。当我调试时,我看到数据存在于 AutoCompleteNameCollection 中,但直到第二个字符输入才显示在建议中。

这段代码是我在 textchange 事件中编写的。

arr = LoadName(empid_txt.Text.Trim());  //arr is string array                          
namesCollection.AddRange(arr);
this.empid_txt.AutoCompleteMode = AutoCompleteMode.Suggest;
this.empid_txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
this.empid_txt.AutoCompleteCustomSource = namesCollection;

在 LoadEvent 中,我使用空数组初始化了 AutoCompleteNameCollection。

namesCollection.AddRange(arr);// here arr is empty
empid_txt.AutoCompleteMode = AutoCompleteMode.Suggest;
empid_txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
empid_txt.AutoCompleteCustomSource = namesCollection;

但直到第二个字符输入后才起作用。 但是,如果我使用空字符串而不是数组来初始化 AutoCompleteNameCollection,例如:namesCollection.Add("");它确实适用于单字符输入,但有时它会给出 AccessViolationException: 尝试读取或写入受保护的内存。 那么我有什么办法可以解决这个问题吗?


在事件处理程序中设置 AutoCompleteSource 时,我可以复制访问冲突,看起来自动完成例程可能在替换和销毁 AutoCompleteSource 时访问它。

为了防止这种情况,您可以在代码周围加锁。

lock(this)
{
arr = LoadName(empid_txt.Text.Trim());  //arr is string array                          
namesCollection.AddRange(arr);
this.empid_txt.AutoCompleteMode = AutoCompleteMode.Suggest;
this.empid_txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
this.empid_txt.AutoCompleteCustomSource = namesCollection;
}

这阻止了访问违规。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文本框自动完成无法正常工作 的相关文章

  • EF Core 返回 null 关系,直到直接访问

    我有一些如下所示的模型 public class Mutant public long Id get set Relations public long OriginalCodeId get set public virtual Origi
  • 与 MinGW 的静态和动态/共享链接

    我想从一个简单的链接用法开始来解释我的问题 假设有一个图书馆z它可以编译为共享库 libz dll D libs z shared libz dll 或静态库 libz a D libs z static libz a 让我想要链接它 然后
  • 并行运行多个任务

    我有一个代理列表 每个代理都会访问不同的站点并从站点中提取所需的数据 目前它一次只做一个 但我希望同时运行 10 20 个任务 这样它就可以一次性从 20 个站点下载 而不是只下载一个 这是我目前正在做的事情 private async T
  • 来自 double 的 static_cast 可以优化分配给 double 吗?

    我偶然发现了一个我认为不必要的功能 并且通常让我感到害怕 float coerceToFloat double x volatile float y static cast
  • 如何从经过身份验证的 SecurityToken 中获取声明

    我将令牌作为字符串传递到 SOAP 服务中 并验证了该令牌是否有效 我现在有一个 SecurityToken 在调试模式下我可以看到所有声明 特别是我想传递到另一个方法的 userId 声明 我似乎不知道如何获得这些索赔 现在 我解码了令牌
  • 大量互斥体对性能的影响

    假设我有一个包含 1 000 000 个元素的数组 以及多个工作线程 每个线程都操作该数组中的数据 工作线程可能会使用新数据更新已填充的元素 但每个操作仅限于单个数组元素 并且独立于任何其他元素的值 使用单个互斥锁来保护整个数组显然会导致高
  • 注入包含接口的所有已注册实现的 Enumerable

    给出以下接口 public interface IMyProcessor void Process 我希望能够注册多个实现 并让我的 DI 容器将它们的可枚举注入到这样的类中 public class MyProcessorLibrary
  • 如何在 C 中链接目标文件?失败并显示“架构 x86_64 的未定义符号”

    因此 我尝试在我的文件 file2 c 中使用另一个 C file1 c 文件中定义的函数 为了做到这一点 我包含了 file1 file1 h 的标头 但是 每当我尝试使用 gcc 编译文件时 我都会收到以下错误 Undefined sy
  • 使用 STL 流时如何格式化我自己的对象?

    我想将我自己的对象输出到 STL 流 但具有自定义格式 我想出了这样的东西 但由于我之前从未使用过 locale 和 imbue 所以我不知道这是否有意义以及如何实现 MyFacet 和operator 所以我的问题是 这是否有意义以及如何
  • 当我尝试传递临时地址作为参数时,它是一个 UB 吗?

    对于以下 C 代码 include
  • 更改私有模块片段是否会导致模块重新编译?

    On 此页面有关 C 20 模块功能 https www modernescpp com index php c 20 modules private module fragment and header units 我发现了这样的说法 借
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • 运行实体框架自定义工具,它有什么作用?

    在 Visual Studio 中 当使用实体框架并为 tt 和 Context tt 文件应用运行自定义工具时 它是什么以及它有什么作用 为什么它解决数据库同步问题 有时 为什么我应该在运行 tt 之前运行它 Context tt 它被称
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • MPI - 发送和接收列

    我需要从一个进程发送矩阵列并从另一个进程接收它 我尝试运行以下程序 但得到了一个奇怪的结果 至少我这么认为 仅复制矩阵的第一个元素 某些矩阵元素会发生意外变化 include
  • c++ - <未解析的重载函数类型>

    在我的班级里叫Mat 我想要一个将另一个函数作为参数的函数 现在我有下面 4 个函数 但是在调用 print 时出现错误 第二行给了我一个错误 但我不明白为什么 因为第一行有效 唯一的区别是功能f不是班级成员Mat but f2是 失败的是
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • 尝试后终于没有被调用

    由于某种原因 在我的控制台应用程序中 我无法运行我的finally 块 我编写这段代码是为了测试finally块是如何工作的 所以它非常简单 static void Main int i 0 try int j 1 i Generate a
  • 如何将模型绑定到动态创建的类 nancyfx

    首先感谢任何愿意查看我的问题的人 我对 Nancyfx 还很陌生 在尝试将 JSON 有效负载绑定到动态创建的类时遇到问题 我按照这篇文章中的代码动态创建了该类 在C 中动态创建一个类 https stackoverflow com que
  • NHibernate:无状态会话错误消息无法获取代理

    我正在使用 nHibernate 无状态会话来获取对象 更新一个属性并将对象保存回数据库 我不断收到错误消息 无状态会话无法获取代理 我在其他地方有类似的代码 所以我不明白为什么这不起作用 有谁知道问题可能是什么 我正在尝试更新Screen

随机推荐

  • IntelliJ 和 Tomcat.. 如何..?

    我使用 Netbeans 开发站点 并使用 Tomcat 作为本地服务器来管理它 在 Netbeans 中 它是 安装 写入 点击运行 它就可以工作 我如何在 IntelliJ 中完成同样的事情 我找不到这方面的分步说明 NOTE 社区版不
  • OpenUri 导致 HTTPS URL 出现 401 Unauthorized 错误

    我正在添加从需要使用带有身份验证的 HTTPS 连接的源中抓取 XML 页面的功能 我正在尝试使用 Ryan Bates 的 Railscast 190 解决方案 但遇到 401 身份验证错误 这是我的测试 Ruby 脚本 require
  • 如何查询API获取第三级路径的所有数据?

    这是我当前的架构 var Schema mongoose Schema var ProviderSchema new Schema name String abbreviated String services Array location
  • C# - 从连接字符串获取文件路径

    C 中是否有现有方法从表示文件的字符串中提取文件路径ConnectionString to a SqlCE sdf文件 我想在初始化时检查文件是否存在 如果文件被修改则备份它 连接字符串示例 strConn Data Source Data
  • 使用 C# 访问应用程序和服务日志

    我想知道是否有一种方法可以访问 Windows 中事件查看器实用程序中名为 应用程序和服务日志 的部分下的日志 问题是 我可以使用下面的代码读取 Windows 日志下的条目 我阅读了整个条目 并获取了具有必要 id 的项目 获得了前 20
  • Python char 数组声明

    有没有办法在 python 中声明一个固定大小的 char 数组 例如在 C 中 char myArray 100 我还想用 NULL 初始化所有字符 你不能有一个fixed大小字符串 Python 不是这样工作的 但是您可以轻松地将字符串
  • 为什么使用包名称从链接的本地 ES 模块包导入可以使用“main”属性,但使用“module”会失败

    Question 为什么使用 pacakge 名称从链接的本地 NPM pacakage 作为 ES 模块构建 导入可以工作 pacakge json有 main 属性 但当它具有 module 财产 Setup 更具体地说 如果我们有以下
  • 查找所有从主表“继承”的分区表

    假设我有一个表 foo 其中包含分区表 foo1 foo2 和 foo3 但目前我所知道的是有一些分区表继承自表 foo 如何找到 foo 有 3 个分区 foo1 foo2 和 foo3 列出所有分区 子表 使用 PG v9 v13 进行
  • 从 4.2.7/4.3.0.CR1 开始,Hibernate JPA OneToOne 孤立删除仍然无法正常工作

    读过JPA 2 0 Hibernate 和 orphanRemoval 仅替换实体并不会删除旧实体 以及相关票证https hibernate atlassian net browse HHH 6484 我推断这个问题已经 最终 在版本 4
  • 通过投影查询返回实体

    是否可以使用投影查询返回实体 我已经使用 SQL 查询成功完成了此操作 见下文 但找不到如何使用投影查询来完成此操作 Dim sql As String SELECT a b FROM a LEFT OUTER JOIN b ON a pk
  • 在 Select 语句计算 Oracle SQL 中使用列别名 [重复]

    这个问题在这里已经有答案了 是否可以做类似的事情select 1 as foo foo 1 from dual 这返回ERROR at line 1 ORA 00904 FOO invalid identifier 我有一个组成列的冗长计算
  • 从 Geb 测试调用 GORM 方法

    在我的 Grails 应用程序中 我有一套 Geb 测试 其中我调用各种 GORM 方法来保存 检索数据 直到最近 这一切都运行良好 但现在 每当我尝试从 Geb 测试调用 GORM 方法时 都会收到以下错误 类 com example M
  • 如何在打字稿中将日期转换为字符串格式 yyyy-mm-dd [重复]

    这个问题在这里已经有答案了 如何将日期转换为字符串格式年 月 日在打字稿中 现在我得到的日期为2017 年 3 月 24 日星期五 00 00 00 GMT 0400 东部夏令时间 我只需要格式中的日期 2017 03 24 从此并且没有任
  • jQuery 验证 – 选中复选框时检查输入值

    我有一个电话号码输入字段 其中包含短信更新选项 我想检查当选中短信复选框时该号码是否是手机号码 我已经使正则表达式正常工作 并且正在验证 但即使未选中复选框 也会显示 移动要求 错误 validator addMethod regex fu
  • 使用复选框在 mvc 中创建用户时添加功能

    我想在 mvc 中创建具有特殊功能的用户 当用户要创建时 我想为每个用户分配一些特殊功能 例如特定用户拥有自己的房子 使用复选框选择拥有自己的汽车 特定功能驻留在名为 feature 的不同表中 那么我如何在创建用户时向用户添加这些功能 我
  • Firestore 安全规则 - 如何防止修改某个字段

    假设我们有一个名为的 Firestore 集合todos 其中每个待办事项将如下所示 name Buy milk completed false user eYtGDHdfgSERewfqwEFfweE some user s uid 现在
  • 获取列表中最大的可用数字

    我有以下字符串List
  • Safari 上的 setDragImage 意外崩溃

    我很难确定为什么 Safari 6 0 在尝试使用 setDragImage 方法时意外崩溃 我有一个 Dragstart 事件 我想在发生此事件时附加背景图像 记录的方法是在事件接线上使用 setDragImage 方法 这在 Firef
  • 取消引用无效指针,然后获取结果的地址

    考虑 int ptr int 0xDEADBEEF cout lt lt void ptr 到底有多违法 考虑到它与立即数结合使用 并且考虑到没有超载op op 在玩吗 这对于寻址尾后数组元素有特殊的影响 myArray n 一个明确等价于
  • 文本框自动完成无法正常工作

    我正在尝试使用数组形式的自定义数据源实现文本框自动完成 该数据源显示有关单字符输入的建议 但是当我运行该程序时 自动完成功能仅在第二个字符输入后启动 当我调试时 我看到数据存在于 AutoCompleteNameCollection 中 但