【MATLAB App Desinger】关于控件的句柄是否有效
背景
在通过function函数对指定控件进行赋值,经常性存在该控件不存在的还强行赋值导致出错的情况。
解决方法
百度了下,可以用ishandle函数来实现控制,测试后对部分内容并没有效果


实际使用中,ishandle函数属于有时有效有时无效的情况,具体情况尚未做区分,但为了解决这种情况,可以结合函数isvalid进行辅助判断。

现在采用组合的方式判断给定控件句柄objHandle.Progressdlg是否有效,目前整个项目运行阶段尚未发生报错的问题。
~isempty( objHandle ) && isfield( objHandle , 'Progressdlg' ) == 1 && ~isempty( objHandle.Progressdlg ) && ( ishandle( objHandle.Progressdlg ) == 1 || isvalid( objHandle.Progressdlg ) == 1 )
参考链接
https://ww2.mathworks.cn/help/matlab/ref/ishandle.html
官方帮助文档中,ishandle是测试是否有效的图形或 Java 对象句柄,而 方法是确定使用
类句柄对象的有效性;
对图形对象使用,