将列表框中的项移动到新的列表框中

本文关键字:列表 移动 | 更新日期: 2023-09-27 18:01:43

我有三个列表框。我正在拆分一个文本文件,以便使用正则表达式将数据排序到适当的列表框中。

排序结束时,向用户显示3个列表框,每个列表框中都包含所有项目。但是,我希望用户能够在左、中或右列表框中选择一条(或多条)行。一旦选择了一个项目,用户可以点击一个按钮"向左移动"或"向右移动"。根据用户关注的框(左、中、右)将决定所选项目的移动位置。

因此,如果用户想要将一个项目从左侧列表移动到右侧列表,他/她将选择最左侧列表中的项目并单击"向右移动"按钮。现在,该项目将从左侧列表中删除,并添加到中间列表中。现在,用户必须从中间列表中选择它,然后再次点击"向右移动"按钮,将其从中间列表中移除,并将其添加到右侧列表中。

如果有任何方法可以从左侧列表中移动项目,那么点击两次"向右移动"按钮就更好了。


有谁知道如何在一个比较简单的事情上做到这一点吗?

将列表框中的项移动到新的列表框中

一旦将数据分解到各自的列表中,最简单的方法是执行以下操作(伪代码)

//from left list
buttonToMiddle()
{
  listMiddle.add(selected text);
  listLeft.remove(selected text);
}
//from middleList
buttonToRight()
{
  listRight.add(selected text);
  listMiddle.remove(selected text);
}

你明白了,这真的很简单,而且你可能还想看看其他更有效地实现它的方法,比如使用switch语句和给按钮一个id之类的。

这只是一个全局的想法和简单的方法。

另一个可疑的使用方法是在第一次点击时激活计时器。如果它在没有注册第二次点击的情况下过期,比如在0.5秒内,那么它会将项目移动一列。如果在此时间内检测到第二次单击,则等待计时器到期,然后移动它两列横过。如果你有一个双击事件,我会使用它。否则,这个方法可能会有帮助。

这个方法应该适用于任意数量的列,但是用户可能很难记住他们点击了多少次。

我假设你有按钮旁边的列表框移动选定的项目到一个框或另一个?

如果是这样,你可以添加额外的按钮从左框移动到右框(跳过中间),或者从右到左。

从人因工程的角度来看,我不确定这是不是最好的方法,但这是我认为你要求的一种方法。

编辑添加

我刚刚重读了你的帖子-看起来你想要处理一个双击事件(我不确定是否存在)。您可能希望查看MouseDown(和MouseUp)事件,并编写自己的双击事件。