Use .NET Events in MATLAB
These examples use the addlistener
function to handle .NET events
with MATLAB® callbacks.
Monitor Changes to .TXT File
This example uses the System.IO.FileSystemWatcher
class in the
System
assembly to monitor changes to a
.TXT
file in the C:\work\temp
folder.
Create the following event handler, eventhandlerChanged.m
:
function eventhandlerChanged(source,arg) disp("TXT file changed") end
Create a FileSystemWatcher
object fileObj
and watch the Changed
event for files with a
.txt
extension in the folder
C:\work\temp
.
file = System.IO.FileSystemWatcher("c:\work\temp"); file.Filter = "*.txt"; file.EnableRaisingEvents = true; addlistener(file,"Changed",@eventhandlerChanged);
If you modify and save a .txt
file in the
C:\work\temp
folder, MATLAB displays:
TXT file changed
The FileSystemWatcher
documentation says that a simple file
operation can raise multiple events.
To turn off the event handler, type:
file.EnableRaisingEvents = false;
Monitor Changes to Windows Form ComboBox
This example shows how to listen for changes to values in a ComboBox on a
Windows® Form. This example uses the SelectedValueChanged
event defined by the System.Windows.Forms.ComboBox
class.
To create this example, you must build a Windows Forms Application using a supported version of Microsoft® Visual Studio®.
Search the Microsoft MSDN® website for information about Windows Forms Applications.
For an up-to-date list of supported compilers, see Supported and Compatible Compilers.
Create a 64-bit Windows Forms Application, myForm
, in your
C:\work
folder. Add a ComboBox
control to
Form1
, and then add one or more items to
ComboBox1
. Build the application.
To add a listener to the form
property, create the following
MATLAB class, EnterComboData
, which uses the
attachListener
method.
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
To execute the following MATLAB commands, you must create and load the application named
myForm.exe
. To create a form and call its
attachListener
method, use the
EnterComboData
class.
form = EnterComboData; form.attachListener;
To trigger an event, select an item from the drop-down menu on the ComboBox. MATLAB displays:
Field updated