【问题标题】:Autocomplete Textbox TextChanged Event Accessviolation Exception自动完成文本框 TextChanged 事件访问冲突异常
【发布时间】:2018-11-24 14:24:19
【问题描述】:

我想创建自动完成文本,即当用户输入数字时,用户输入的文本+固定文本显示为自动完成文本。所以我在textchanged 事件中创建autocompleteStringCollection。但它给了我AccessViolationException

System.AccessViolationException HResult=0x80004003

Message=试图对受保护的内存执行读取或写入操作。其他内存可能坏了。来源=堆栈跟踪:

有什么建议吗?

这是我的代码!!!!

private void textbox_TextChanged(object sender,EventsArgs e)
{
AutocompleteStringCollection a=new AutocompleteStringCollection();
if(textbox.Text.Length!=0)
{
a.AddRange(new String[]{textbox.Text+"greater than",
textbox.Text+"greater than equal"});
}
textbox.AutocompleteCustomSource=a;
}

【问题讨论】:

  • 我编辑了。谢谢
  • 我认为应该可以。唔。您能否提供完整的异常和堆栈跟踪(当它弹出时您应该可以单击“复制详细信息”)
  • System.AccessViolationException HResult=0x80004003 Message=试图对受保护的内存执行读取或写入操作。其他内存可能坏了。 Source= 堆栈跟踪:
  • 您可以尝试禁用您的防病毒软件,然后再次运行您的应用程序吗?
  • 好的!!我会测试!!

标签: c#


【解决方案1】:

没有任何实际的代码来调试,我只能给你要点。

AccessViolationException 是操作系统Memory Protection 的一部分。 AV 异常通常需要有人处理裸指针和 bleeping 东西,这很容易做到。

您通常不会在 .NET 中获得它们。设计人员竭尽全力防止您需要处理裸指针。还有几个可能的原因:

【讨论】:

  • @ZuzanKoKoHtet 您显示的代码中的任何内容都不会导致此异常。所以我们可以排除选项 1。它仍然留下只有你可以调试的其他 3 个。
猜你喜欢
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多