【问题标题】:Determine if Listbox index change was from refresh or mouse click确定列表框索引更改是来自刷新还是鼠标单击
【发布时间】:2023-03-30 11:28:02
【问题描述】:

我有一个 Win Forms 列表框,其内容每隔几秒刷新一次。列表框显示存储在数据库中的人们可以响应的消息——它是一个定制的即时通讯应用程序。当刷新发生时, selectedindex 会自动更改为 0,如果我选择了第 6 条消息并且我正在尝试响应它,那么这是一个问题。如何确定索引更改是刷新还是鼠标单击列表框的结果,然后如果不是鼠标单击则停止选择更改?

【问题讨论】:

  • 使用布尔变量。刷新时将其设置为 true,之后再设置为 false。现在你知道了。
  • 在定时刷新的事件处理程序中,您不能将选定的索引存储在那里,然后在刷新后重新分配选定的项目吗?
  • 我想我有答案了。有点类似于尼夫的评论。我会在下面回答。

标签: c# listbox mouseclick-event selectedindexchanged onmouseclick


【解决方案1】:

我相信我已经找到了解决问题的方法。我不确定如何处理事件处理程序,所以我对此进行了研究。我向 MessageListBox.click 事件添加了一个事件处理程序。此事件处理程序设置一个名为 selectedIndex 的属性,并且是唯一设置此值的地方。在刷新方法中,我在 Update/Refresh 调用后将 MessageListBox.SelectedIndex 设置为此值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 2018-09-18
    相关资源
    最近更新 更多