2011-07-11 73 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秒,那麼它將移動項目一列。如果在這段時間內檢測到第二次點擊,請等到計時器到期,然後將其移動兩欄到 。如果你有雙擊事件,我會使用它。否則,這種方法可能會有所幫助。

這個方法應該適用於列的任意數量,但可能會得到用戶很難記住他們已經點擊了多少次。

相關問題