找回密码
 注册
关于网站域名变更的通知
查看: 732|回复: 3
打印 上一主题 下一主题

Matlab app开发中EditField控件通过ValueChanging回调改变控件值得问题

[复制链接]
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2023-1-6 11:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    如题,对EditField控件,改变控件的Value值(通过编程改变),一直没搞明白。我做了测试,单独搞了一个EditField控件,操作发现结果如下:1、首先,我用的是ValueChanging回调,因为项目中,我想在回调中,控制控件内值的值域,测试代码如下
    / q0 Z3 b& O4 K8 b. A) s
    • % Value changing function: EditField
    •         function EditFieldValueChanging(app, event)
    •             changingValue = event.Value;
    •             fprintf('VlaueChanging-Working!\n');
    •             app.EditField.Value = '10';
    •         end) \) o% y7 m5 @0 b9 o( u
    7 S4 E( d4 |* ]" t
    复制代码( j8 E* H2 o( ?; B
    如上代码,也就是说,每次我在EditField控件内通过键盘输入字符时,无论输入的是什么,应该都会变成字符‘10’/ }9 n- h3 M8 L. T% S  b' }5 d
    但是实测的时候发现
    7 Y7 f7 J2 A+ u: L+ [: w+ O, w第一次通过键盘输入字符,确实会变成字符'10',但是如果继续输入,比如我继续输入‘1’,那么久变成‘10111...’。难道不应该每次输入都变成'10'吗,回调通过打印内容,确认进去回掉了,也就是说app.EditField.Value = '10';这个赋值没有成功。
    4 ~2 w' n4 m" Q4 u& a3 G- z* `4 g. V4 I' Y5 I8 ?
    1 z0 i6 e" Q9 E5 S: F9 f' H" k

    8 ~: p4 N: E! i7 t- z& {& c9 m" }另外,如果我的鼠标从EditField框释放出来,然后再点击进去,这时候,如果输入字符,第一次也可以变成'10',也就是赋值成功。为什么赋值会不成功呢?$ o, t( j0 b6 w  Y) O3 P3 Y
    0 C& a" r2 F- l* J' [% A4 E* m' Q2 O
    我又做了测试,建了两个EditField控件,比如A和B,我再A的ValueChanging回调中,去给B的Value赋值,每次都是可以赋值成功的。大佬们指点一下吧。help里面说的也不清楚...- ?( j) g) Q1 Z; j( H
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-1-6 13:10 | 只看该作者
    用这个ValueChanged回调,这个才是输入结束后的回调。(ValueChanging是输入进行时的回调)
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2023-1-6 13:21 | 只看该作者
    底层的逻辑应该是ing回调中会记录上一次点击的值,所以你赋值的值才会不断被覆盖,也就是value值在ing value后,ing中自身赋值无效化。除非你自己造轮子,要不然一个函数做不到。你可以建立一个侦听事件试一下  Y1 u0 A9 y: V( a* }: h
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2023-1-6 13:34 | 只看该作者
    输入时判断控制没有办法,只能结束判断时了,结束时判断位数,多余就取8位,判断字符使用hex2dec,配合try catch 使用,报错就是不是十六进制数
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-16 09:06 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表