Использование событий .NET в MATLAB

Эти примеры используют addlistener функция для обработки событий .NET с MATLAB® коллбэки.

Отслеживайте изменения в файле .TXT

Этот пример использует System.IO.FileSystemWatcher класс в System сборка для мониторинга изменений в .TXT файл в C:\work\temp папка. Создайте следующий обработчик событий, eventhandlerChanged.m:

function eventhandlerChanged(source,arg)
disp('TXT file changed')
end

Создайте FileSystemWatcher fileObj объекта и наблюдайте за Changed событие для файлов с .txt расширение в папке C:\work\temp.

file = System.IO.FileSystemWatcher('c:\work\temp');
file.Filter = '*.txt';
file.EnableRaisingEvents = true;
addlistener(file,'Changed',@eventhandlerChanged);

Если вы изменяете и сохраняете .txt файл в C:\work\temp папка, MATLAB отображает:

TXT file changed

The FileSystemWatcher документация говорит, что простая операция файла может вызвать несколько событий.

Чтобы выключить обработчик событий, введите:

file.EnableRaisingEvents = false;

Отслеживайте изменения в ComboBox формы Windows

В этом примере показано, как прослушать изменения значений в ComboBox в Windows® Форма. Этот пример использует SelectedValueChanged событие, определяемое System.Windows.Forms.ComboBox класс.

Чтобы создать этот пример, необходимо создать приложение Windows Forms с помощью поддерживаемой версии Microsoft® Визуальная студия®.

Создайте 64-разрядное приложение Windows Forms, myForm, в вашем C:\work папка. Добавление ComboBox управление в Form1, а затем добавить один или несколько элементов к ComboBox1. Создайте приложение.

Как добавить прослушивателя в form создайте следующий класс MATLAB, EnterComboData, который использует attachListener способ.

classdef EnterComboData < handle
properties
    form
end
methods
    function x = EnterComboData
        NET.addAssembly('C:\work\myForm\myForm\bin\x64\Debug\myForm.exe');
        x.form = myForm.Form1;
        Show(x.form)
        Activate(x.form)
    end
    function r = attachListener(x)
        % create listener
        r = addlistener(
            x.form.Controls.Item(0),
            'SelectedValueChanged',
            @x.anyChange);
    end
    function anyChange(~,~,~)
        % listener action if comboBox changes
        disp('Field updated')
    end
end
end

Чтобы выполнить следующие команды MATLAB, вы должны создать и загрузить приложение с именем myForm.exe. Чтобы создать форму и вызвать ее attachListener метод, используйте EnterComboData класс.

form = EnterComboData;
form.attachListener;

Чтобы вызвать событие, выберите элемент из раскрывающегося меню на ComboBox. MATLAB отображает:

Field updated

См. также

Похожие темы