Перемещение выбранных элементов из одного списка в другой в C# winform
Я пытаюсь переместить выбранные элементы в списке box1 в список box2 и наоборот. У меня две пуговицы, >>
и <<
. Когда я выбираю элементы в listbox1, а затем нажимаю на >>
элементы должны перемещаться из listbox1 в listbox2.
private void MoveListBoxItems(ListBox source, ListBox destination)
{
ListBox.SelectedObjectCollection sourceItems = source.SelectedItems;
foreach (var item in sourceItems)
{
destination.Items.Add(item);
}
while (source.SelectedItems.Count > 0)
{
source.Items.Remove(source.SelectedItems[0]);
}
}
private void button2_Click_1(object sender, EventArgs e)
{
MoveListBoxItems(listbox , lstActivity);
}
7 ответов
ваш код работает нормально. я проверил. ваш вопрос: "я пытаюсь двигаться избранные пункт в списке box1 в список box2."
Я думаю, что у вашей button2 есть проблема.удалить button2 и код ниже
private void button2_Click_1(object sender, EventArgs e)
{
MoveListBoxItems(listbox , lstActivity);
}
затем создайте другую кнопку и создайте событие click.
полный источник:
private void MoveListBoxItems(ListBox source, ListBox destination)
{
ListBox.SelectedObjectCollection sourceItems = source.SelectedItems;
foreach (var item in sourceItems)
{
destination.Items.Add(item);
}
while (source.SelectedItems.Count > 0)
{
source.Items.Remove(source.SelectedItems[0]);
}
}
private void first2second_Click(object sender, EventArgs e)
{
MoveListBoxItems(FirstListbox, LastListbox);
}
private void second2first_Click(object sender, EventArgs e)
{
MoveListBoxItems(LastListbox, FirstListbox);
}
этот код работать. если требуется выбрать несколько свойств изменения элемента SelectionMode = MultiSimple;
private void buttonMoveToListBox1_Click(object sender, EventArgs e)
{
if(listBox1.SelectedIndex != -1)
{
listBox2.Items.Add(listBox1.SelectedValue);
listBox1.Items.Remove(listBox1.SelectedValue);
}
}
private void buttonMoveToListBox2_Click(object sender, EventArgs e)
{
if(listBox2.SelectedIndex != -1)
{
listBox1.Items.Add(listBox2.SelectedValue);
listBox2.Items.Remove(listBox2.SelectedValue);
}
}
для каждой удаленной строки будут конфликты, поэтому перейдите к приведенному ниже коду:
>>
for (int intCount = ListBox1.SelectedItems.Count - 1; intCount >= 0; intCount--)
{
ListBox2.Items.Add(ListBox1.SelectedItems[intCount]);
ListBox1.Items.Remove(ListBox1.SelectedItems[intCount]);
}
for (int intCount = ListBox2.SelectedItems.Count - 1; intCount >= 0; intCount--)
{
ListBox1.Items.Add(ListBox2.SelectedItems[intCount]);
ListBox2.Items.Remove(ListBox2.SelectedItems[intCount]);
}
Если выше не работает, то попробуйте этот:
while (ListBox1.SelectedItems.Count > 0)
{
ListBox2.Items.Add(ListBox1.SelectedItems[0].Text);
ListBox1.SelectedItems[0].Remove();
}
для большего типа ответов вы можете пойти с этим ссылке
код.. currentItemText = LeftListBox.SelectedValue.Метод toString(); currentItemIndex = LeftListBox.Свойства selectedIndex;
RightListBox.Items.Add(currentItemText);
if (myDataList != null)
{
myDataList.RemoveAt(currentItemIndex);
}
ApplyDataBinding();
Я решил, используя этот код:
private void MoveListBoxItems(ListBox poSource, ListBox poDestination)
{
while (poSource.SelectedItems.Count > 0)
{
poDestination.Items.Add(poSource.SelectedItems[0]);
poSource.Items.Remove(poSource.SelectedItems[0]);
}
}
<script type="text/javascript">
$(document).ready(function() {
// > arrow
$('#SingleRightMove').click(function() {
$('#fromBox option:selected').remove().appendTo('#toBox');
//$("#tobox option").attr("selected", false);
$('#toBox').find("option").attr("selected", false);
});
// < arrow
$('#SingleLeftMove').click(function() {
$('#toBox option:selected').remove().appendTo('#fromBox');
$("#fromBox option").attr("selected", false);
});
// >> arrow
$('#AllRightMove').click(function() {
$('#fromBox option').remove().appendTo('#toBox');
$("#toBox option").attr("selected", false);
});
// << arrow
$('#AllLeftMove').click(function() {
$('#toBox option').remove().appendTo('#fromBox');
$("#fromBox option").attr("selected", false);
});
});
</script>
получите кнопки >> и
$buttonMOVERight_Click={
foreach ($Srv in $listbox2.selectedItems)
{$selectedServers=$Srv}
$listbox3.BeginUpdate()
foreach($TSrv in $Srv)
{$listbox3.Items.Add($TSrv);
$listbox2.Items.Remove($TSrv);}
$listbox3.EndUpdate()
}
$buttonMoveLeft_Click={
#TODO: Place custom script here
foreach ($Srvs in $listbox3.selectedItems)
{$ServersinRt=$Srvs}
$listbox2.BeginUpdate()
foreach($rSRv in $Srvs)
{$listbox2.Items.Add($rSRv);
$listbox3.Items.Remove($Srvs);}
$listbox2.EndUpdate()
}