私は用語を混乱させるかもしれませんが、私がやろうとしていることは次のとおりです。
選択したアイテムを別のアイテムに移動する移動機能がありますlistBox
。3 つのリスト ボックスがあり、それぞれの間に 2 つの右矢印ボタンと左矢印ボタンがあり、最初のリスト ボックス項目を中央に移動したり、中央を最初のリスト ボックス項目に戻したりすることができます。
sender
私の関数は、ステートメントを介してさまざまなボタン名を受け入れます。選択したアイテムの送信元と送信先をswitch
選択したいと思います。listBox
それが理にかなっていれば。
一番下の while ループは、「to」と「from」の設定に応じて、実際の移動を実行しlistBoxes
ます。
私の質問は、この関数のスコープ内で、ステートメントlistBoxes
の各ケースに存在する 3 つの名前をどのように参照できるかということです。switch
私が行ったように a を初期化するのnew listBox
は間違っていることを知っており、さらに を作成しますlistBoxes
。while
この場合、各ステートメントにループを明示的に配置するのが最も簡単な方法かもしれませんがcase
、将来のより複雑なシナリオでは、これがどのように行われるかを知りたいと思います。
private void move(object sender, EventArgs e)
{
Button thisButton = sender as Button;
ListBox to = new ListBox();
ListBox from = new ListBox();
switch (thisButton.Name)
{
case "queueToProgressButton":
to.Name = "queueListBox";
from.Name = "progressListBox";
break;
case "progressToQueueButton":
to.Name = "queueListBox";
from.Name = "progressListBox";
break;
case "progressToCompletedButton":
to.Name = "queueListBox";
from.Name = "progressListBox";
break;
case "completedToProgressButton":
to.Name = "queueListBox";
from.Name = "progressListBox";
break;
}
while (from.SelectedItems.Count > 0)
{
to.Items.Add(from.SelectedItem);
from.Items.Remove(from.SelectedItem);
}
}