尝试使用IME(日语,平假名)向TextBox输入任何数据会导致应用程序崩溃,并出现MDA FatalExecutionEngineError错误。
我在窗口上有两个文本框。我开始使用字母数字模式向第一个字段输入数据,当文本的长度达到2时,将焦点设置到第二个字段。使用Shift + Tab键组合返回到第一个字段,切换到平假名模式并尝试输入任何数据。
我的窗口:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<TextBox Grid.Row="0" Margin="5" x:Name="field1" TextChanged="Field1_OnTextChanged" />
<TextBox Grid.Row="1" Margin="5" x:Name="field2" />
</Grid>
</Window>
后台:
namespace WpfApplication1
{
using System.Windows.Controls;
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
}
private void Field1_OnTextChanged(object sender, TextChangedEventArgs e)
{
if (field1.Text.Length == 2)
{
field2.Focus();
}
}
}
}
该错误消息包含以下详细信息: 托管调试助手“ FatalExecutionEngineError”已在“ [可执行文件的路径]”中检测到问题。
其他信息:运行时遇到致命错误。错误的地址在线程0x254c上的0x6cee610f处。错误代码为0x80131623。此错误可能是CLR或用户代码中不安全或不可验证部分的错误。该错误的常见来源包括COM-interop或PInvoke的用户封送处理错误,这些错误可能会破坏堆栈。