2011-07-11 72 views
2

我有3个列表框。我正在分割一个文本文件,使用正则表达式将数据排序到正确的列表框中。C# - 将列表框项移动到新列表框中

在排序结束后,用户与所有在每一个项目中显示的3个列表框。但是,我希望用户能够在左侧,中间或右侧列表框中选择一条(或多条)线条。一旦选择了一个或多个项目,用户可以点击按钮以“向左移动”或“向右移动”。取决于用户关注哪个框(左,中,右)将决定选定项目将移动到的位置。

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

如果有任何方式的所有的方式移动项目从左边的列表上的“向右移动”按钮,这将是更好的点击两次。


有没有人知道如何去解决这个有点简单的问题?

+1

Winforms,ASP.NET,WPF ...? –

回答

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或某种类型。

这只是一个全球性的想法和简单的方法来做到这一点。

+0

我认为OP正在寻找一种通过双击从左到右移动(跳过中间)的方式。 – Tim

+0

如何获取选定的文本?这是一个列表框,当我点击一个项目时,它突出显示了整条线..但我不知道如何获得该线? – theNoobGuy

+0

有几种方法可以像textBox1.Text = ListBox1.SelectedValue.ToString(); 。您可以查看api并单击事件以查看说明。 http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.aspx – user710502

0

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

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

我不知道这是从人体工程学的角度来看是最好的方法,但它做什么,我想你问的一种方式。

编辑添加的

我只是重新读您的文章 - 它看起来像你要处理双击事件(这我不知道容易存在)。您可能需要查看MouseDown(和MouseUp)事件并编写自己的双击事件。

1

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

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

相关问题