ListBox.SelectedIndexChanged - 您能否确定它是否是用户启动的?

发布于 2024-09-05 21:33:01 字数 262 浏览 6 评论 0原文

我的问题与此类似:如何防止 ListBox.SelectedIndexChanged 事件?,但我想以不同的方式问它。

有没有一种简单的方法来确定“SelectedIndexChanged”是否来自用户而不是通过代码启动(例如ListBox.SelectedIndex = x)?

My question is similar to this: How to prevent ListBox.SelectedIndexChanged event?, but I want to ask it a different way.

Is there a simple way to determine if the 'SelectedIndexChanged' is coming from the user as opposed to initiated through code (e.g. ListBox.SelectedIndex = x)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

醉态萌生 2024-09-12 21:33:01

据我所知,不,没有简单的内置方法。我能做的最好的事情就是在代码中更改它之前设置一个标志,然后让事件处理程序重置该标志并返回。

我想您可以开始检查调用堆栈,看看它是否源自您自己的代码中的某个地方,但我不确定它值得付出多少努力。

As far as I know, no, there's no simple way built-in. The best I've been able to do is set a flag just before changing it in code and then letting the event handler reset the flag and return.

I suppose you could start examining the call stack and see if it's originating somewhere in your own code or not, but I'm not sure how much it's worth the effort.

浸婚纱 2024-09-12 21:33:01

对我来说,“SelectionChangeComfilled”事件更适合我的目的。当选择下拉列表中的选项时会触发它。这是在最终用户发起更改时处理特定情况的最简单方法。 SelectedIndexChanged 是捕获所有情况。

For me, the 'SelectionChangeCommitted' event was better suited for my purposes. It fires when a selection in the drop down is selected. This is the easiest way to handle the specific case when the end-user initiates the change. SelectedIndexChanged is to capture all cases.

蓝天白云 2024-09-12 21:33:01

属性更改侦听器不区分属性更改的原因。这是一个常见问题。设置标志就是做到这一点的方法。

我确实希望有一种方法可以在不触发属性更改事件的情况下设置值。但是,人们认为它打破了整个面向对象的模型,因为它有效地允许您直接更改字段,而不使用属性。

Property change listeners don't distinguish between causes of a property change. It's a common problem. Setting a flag is the way to do it.

I do wish that there was a way to set values without firing property change events. But then, people argue that it breaks the whole object-oriented model, because it effectively allows you to change a field directly, without using a property.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文