文本框自动完成时访问冲突异常

时间:2017-02-20 07:35:13

标签: exception events access access-violation textchanged

enter image description here

在textchanged事件中,经常发生访问冲突异常。

2 个答案:

答案 0 :(得分:0)

它可能是一个安全级别的问题。试试这个:转到Project Property页面,然后进入Security Section。

"启用ClickOnce安全设置"将被视为已检查。取消选中

参考:https://social.msdn.microsoft.com/Forums/windows/en-US/e599b2e2-3cda-43ad-b15f-a69b4fea1a75/dynamic-filling-of-textbox-autocomplete-not-working?forum=winforms

答案 1 :(得分:0)

我也想使用从同一文本框中输入的用户输入作为过滤器来填充TextBox AutoCompleteCustomSource,所以我有TextChanged事件捕获数据来填充下拉建议列表。

我尝试了很多不同的方式来填充数据,这都导致了随机或持续的访问冲突。如果我没记错的话,我终于确定了。

看来使用哪种方法将项目实际添加到AutoCompleteCustomSource并不重要。当您去替换那些物品时,就会出现问题。

在更改TheTextbox.AutoCompleteCustomSource中的任何数据之前,您需要先进行设置:

TheTextBox.AutoCompleteSource = AutoCompleteSource.None    

然后,您可以使用任何喜欢的方法清除和/或重新填充它:

TheTextBox.AutoCompleteCustomSource.Clear()
TheTextBox.AutoCompleteCustomSource.AddRange(AutoSuggestItems)

完成后将AutoCompleteSource设置回CustomSource:

TheTextBox.AutoCompleteSource = AutoCompleteSource.CustomSource

' prevent that annoying selection of the whole textbox text
TheTextBox.Select(Me.TheTextBox.Text.Length, 0)

*注意:如果像我最初一样在更改数据时还设置TheTextBox.AutoCompleteMode,则稍后会导致访问冲突错误。 (SO FAR)以上方法正常工作。我希望这是我对该解决方案的最后更新:)