Использование Событий.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

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

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

file.EnableRaisingEvents = false;

Мониторинг изменений в Windows Form ComboBox

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

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

Создайте 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

Смотрите также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте