我要创建自动填充文本,即当用户键入数字时,用户键入的文本+固定文本显示为自动填充文本。因此,我在autocompleteStringCollection
事件中创建了textchanged
。但这给了我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;
}
答案 0 :(得分:0)
由于没有任何实际要调试的代码,我所能提供的就是要点。
AccessViolationException是操作系统Memory Protection的一部分。 AV异常通常需要有人处理裸露的指针和 bleepping 东西,这非常容易做到。
通常不会在.NET中获得它们。设计师竭尽全力防止您需要处理裸露的指针。仍然有一些可能的原因: