试试这个:
<TextBox TextChanging="TextBox_OnTextChanging"></TextBox>
private void TextBox_OnTextChanging(TextBox sender, TextBoxTextChangingEventArgs args)
{
sender.Text = "some string"; // It does not matter about string
}
如果您尝试在TextChanging
事件后更改文字,则会在文本框中快速输入(我的意思是按所有手指按下随机键)时冻结或crash
TextBox_OnTextChanged事件没问题。
(这个问题来自哪里?我正在尝试基于this post创建NumericTextBox,这个Q是核心问题。)
答案 0 :(得分:0)
我同意@Visual Vincent,当TextChanging
属性已经反映新值但仍未在UI中呈现时,会发生Text
事件。当您快速键入时,它可能会导致可能导致崩溃的致命错误。在我这边它冻结但调试器没有崩溃。
它没有告诉我异常是什么 - 这就是问题所在。这一行代码应该不是问题。
您的VS可能配置为仅调试托管异常。如果您收到本机异常,则可能会出现此异常。您可以在项目的属性中找到Debug
选项,并将Debugger type
从Managed only
更改为Mixed(Managed and Native)
:
我认为你已经知道它崩溃的原因,如何解决问题,也许你也想在崩溃时获取信息而不显示错误信息,对于这个问题,你可以参考How to debug a program when it crashes w/out exception?。< / p>