В этих примерах используется addlistener для обработки событий .NET с помощью обратных вызовов MATLAB ®.
В этом примере используется 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;
В этом примере показано, как прослушивать изменения значений в ComboBox в форме Windows ®. В этом примере используется SelectedValueChanged событие, определенное System.Windows.Forms.ComboBox класс.
Чтобы создать этот пример, необходимо создать приложение Windows Forms с помощью поддерживаемой версии Microsoft ® Visual Studio ®.
Сведения о приложениях Windows Forms см. на веб-сайте Microsoft MSDN ®.
Обновленный список поддерживаемых компиляторов см. в разделе Поддерживаемые и совместимые компиляторы.
Создание 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