我有3个列表框。我正在拆分文本文件,使用正则表达式将数据排序到正确的列表框中。
在排序结束时,用户将显示3个列表框,其中包含每个项目中的所有项目。但是,我希望用户能够在左侧,中间或右侧列表框中选择一行(或多行)。一旦选择了一个项目,用户可以点击按钮“向左移动”或“向右移动”。取决于用户关注的框(左,中,右)将决定所选项目将移动到的位置。
因此,如果用户想要将项目从左侧列表移动到右侧列表,则他/她将选择最左侧列表中的项目并单击“向右移动”按钮。现在,该项目将从左侧列表中删除并添加到中间列表中。现在,用户必须从中间列表中选择它,然后再次单击“向右移动”按钮将其从中间列表中删除并将其添加到右侧列表中。
如果有任何方法可以从左侧列表中一直移动项目,请在“向右移动”按钮上单击两次,这样会更好。
有人知道如何在一个简单的事情中解决这个问题吗?
答案 0 :(得分:1)
一旦将数据分解为各自的列表,最简单的方法就是做这样的事情(伪代码)
//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或某种类型。
这只是一个全球性的想法和简单的方法。
答案 1 :(得分:1)
可疑使用的另一个选择是通过第一次点击激活计时器。如果它在没有注册第二次点击的情况下到期,比如0.5秒,那么它会将项目移动一列。如果在此时间内检测到第二次单击,请等待计时器到期,然后移动它 两列横跨。如果您有双击事件,我会使用它。否则,此方法可能会有所帮助。
此方法适用于任意数量的列,但用户可能很难记住他们点击了多少次。
答案 2 :(得分:0)
我假设你有ListBoxes旁边的按钮将所选项目移动到一个或另一个框?
如果是这样,您可以添加其他按钮以从左框移动到右框(跳过中间)或从右到左。
从人工因素工程的角度来看,我不确定这是最好的方法,但这是我认为你要问的一种方法。
编辑添加
我只是重新阅读你的帖子 - 看起来你想要处理双击事件(我不确定是否存在)。您可能希望查看MouseDown(和MouseUp)事件并编写自己的双击事件。