FatalExecutionEngineError при попытке ввода с использованием IME после установки фокуса на элемент - PullRequest
0 голосов
/ 02 июля 2019

Попытка ввода любых данных в TextBox с помощью IME (японский язык, хирагана) вызывает сбой приложения с ошибкой 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' обнаружил проблему в '[путь к исполняемому файлу]'.

Дополнительная информация: во время выполнения обнаружена фатальная ошибка.Адрес ошибки был 0x6cee610f в потоке 0x254c.Код ошибки 0x80131623.Эта ошибка может быть ошибкой в ​​CLR или в небезопасных или не поддающихся проверке частях пользовательского кода.Распространенными источниками этой ошибки являются ошибки пользовательского маршалинга для COM-взаимодействия или PInvoke, которые могут повредить стек.

...