修改控件Enabled 属性时不起作用

寂小换 2018-08-17 10:28:17
在修改几个DevExpress插件下的SimpleButton控件的Enabled属性时,调试时发现开始有一次运行时调用这个过程会不起作用,后面又好了
如下图,当点击btnStart时调用这个过程,传入参数flag=false,按理应该btnStart,txtCycle,cbbUnit,btnSave不可用,btnStop可用。但调试时第一次点击按钮有时会出现相反的情况,btnStart,txtCycle,cbbUnit,btnSave还是可用的,btnStop依旧不可用(也就是没有修改成功),想知道为什么会出现这种情况

...全文
889 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
寂小换 2018-08-22
  • 打赏
  • 举报
回复
引用 12 楼 jhone99 的回复:
[quote=引用 11 楼 weixin_42655776 的回复:]
唉,检查了几次都没发现其他会改变按钮enabled属性的地方,难道是不能随便在按钮点击的事件里改变当前这个按钮的enabled属性?


按钮点击的事件里改变当前这个按钮的enabled属性 这个是允许的,[/quote]

最后应该搞清楚了,我用的DevExpress的控件,然后直接修改的simpleButton的属性,好像是因为这个的原因。
现在改成修改SimpleButton所在的LayoutcontrolItem的Enabled属性,就再没有出错了
jhone99 2018-08-20
  • 打赏
  • 举报
回复
引用 11 楼 weixin_42655776 的回复:
唉,检查了几次都没发现其他会改变按钮enabled属性的地方,难道是不能随便在按钮点击的事件里改变当前这个按钮的enabled属性?


按钮点击的事件里改变当前这个按钮的enabled属性 这个是允许的,
寂小换 2018-08-20
  • 打赏
  • 举报
回复
唉,检查了几次都没发现其他会改变按钮enabled属性的地方,难道是不能随便在按钮点击的事件里改变当前这个按钮的enabled属性?
jhone99 2018-08-17
  • 打赏
  • 举报
回复
追踪看看,是否没有调用这部分代码?是否传入值不对?是否其它位置有其它设置?是否有多次调用,后来调用覆盖了前面?
寂小换 2018-08-17
  • 打赏
  • 举报
回复
引用 5 楼 jhone99 的回复:
追踪看看,是否没有调用这部分代码?是否传入值不对?是否其它位置有其它设置?是否有多次调用,后来调用覆盖了前面?

我单步调试过这段代码,看到它明明运行了btnStart.Enabled=flag那句(flag是False),运行完查看btnStart.Enabled仍然是true
exception92 2018-08-17
  • 打赏
  • 举报
回复
调试 输出属性值看看呢
寂小换 2018-08-17
  • 打赏
  • 举报
回复
引用 2 楼 qq14923349 的回复:
确定传入了?


确定,是有时不起作用
qq14923349 2018-08-17
  • 打赏
  • 举报
回复
确定传入了?
xuzuning 2018-08-17
  • 打赏
  • 举报
回复
偶尔不起作用,表示原系统不够健壮
寂小换 2018-08-17
  • 打赏
  • 举报
回复
引用 8 楼 qq_34798533 的回复:
后面几个用flag不就完了吗


[quote=引用 6 楼 weixin_42655776 的回复:]
[quote=引用 5 楼 jhone99 的回复:]
追踪看看,是否没有调用这部分代码?是否传入值不对?是否其它位置有其它设置?是否有多次调用,后来调用覆盖了前面?

我单步调试过这段代码,看到它明明运行了btnStart.Enabled=flag那句(flag是False),运行完查看btnStart.Enabled仍然是true[/quote][/quote]

这是另外的问题了,关键问题还是btnStart的Enabled属性没有被修改呀
寂小换 2018-08-17
  • 打赏
  • 举报
回复
引用 7 楼 jhone99 的回复:
有3种可能性,1、你是否有其它设置这enabled。2、有其它位置再次调用这段代码。3、你这段代码在系统初始化前,窗体的初始化重新回置了


遗憾的是这三种可能的情况都不是
xiaoyu5425 2018-08-17
  • 打赏
  • 举报
回复
后面几个用flag不就完了吗


引用 6 楼 weixin_42655776 的回复:
[quote=引用 5 楼 jhone99 的回复:]
追踪看看,是否没有调用这部分代码?是否传入值不对?是否其它位置有其它设置?是否有多次调用,后来调用覆盖了前面?

我单步调试过这段代码,看到它明明运行了btnStart.Enabled=flag那句(flag是False),运行完查看btnStart.Enabled仍然是true[/quote]
jhone99 2018-08-17
  • 打赏
  • 举报
回复
有3种可能性,1、你是否有其它设置这enabled。2、有其它位置再次调用这段代码。3、你这段代码在系统初始化前,窗体的初始化重新回置了

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧