c# -移动文本框到列表框,并能够使用添加/删除按钮
本文关键字:添加 能够使 按钮 删除 移动 文本 列表 | 更新日期: 2023-09-27 18:03:00
我有3个文本框,其中有特定的值。根据字符串包含的内容,使用不同的正则表达式对值进行拆分。
这些文本框在后台,用户不会看到它们。但是,我确实希望用户看到与每个文本框对应的列表框。下面的代码是:
private void listFormatHelper()
{
// Splits the lines in the rich text boxes
var listOneLines = placementOneRichTextBox.Text.Split(''n');
var listTwoLines = placementTwoRichTextBox.Text.Split(''n');
var listUserLines = userDefinedRichTextBox.Text.Split(''n');
// Resest the text in the listboxes
placementOneListBox.ResetText();
placementTwoListBox.ResetText();
userDefinedListBox.ResetText();
// Set the selection mode to multiple and extended.
placementOneListBox.SelectionMode = SelectionMode.MultiExtended;
placementTwoListBox.SelectionMode = SelectionMode.MultiExtended;
userDefinedListBox.SelectionMode = SelectionMode.MultiExtended;
// Shutdown the painting of the ListBox as items are added.
placementOneListBox.BeginUpdate();
placementTwoListBox.BeginUpdate();
userDefinedListBox.BeginUpdate();
// Display the items in the listbox.
placementOneListBox.DataSource = listOneLines;
placementTwoListBox.DataSource = listTwoLines;
userDefinedListBox.DataSource = listUserLines;
// Allow the ListBox to repaint and display the new items.
placementOneListBox.EndUpdate();
placementTwoListBox.EndUpdate();
userDefinedListBox.EndUpdate();
}
然而,我的问题是我不能移动列表中的每个项目…我的意思是,我希望能够有Move up
, Move down
, Move left
和Move right
按钮。Move up
和Move down
按钮将允许用户在指定的列表中向上或向下移动所选项目(以改变项目的顺序)。Move left
和Move right
按钮将允许用户将当前列表中的项移动到当前列表的"右"或"左"列表。
可视化布局的实现:
placementOneListBox userDefinedListBox placementTwoListBox
| | | | | |
| | | | | |
| | | | | |
| | | | | |
|_________________| |_________________| |_________________|
和我误差:
"Items collection cannot be modified when the DataSource property is set."
向上移动按钮CODE:
private void moveUpButton_Click(object sender, EventArgs e)
{
if (placementOneListBox.SelectedIndex != 0 && placementOneListBox.SelectedIndex != -1)
{
object item = placementOneListBox.SelectedItem;
int index = placementOneListBox.SelectedIndex;
placementOneListBox.Items.RemoveAt(index);
placementOneListBox.Items.Insert(index - 1, item);
}
}
向右走按钮代码:
private void moveRightButton_Click(object sender, EventArgs e)
{
for (int i = 0; i < placementTwoListBox.Items.Count; i++)
{
userDefinedListBox.Items.Add(placementTwoListBox.Items[i].ToString());
placementTwoListBox.Items.Remove(placementTwoListBox.SelectedItem);
}
}
问题:
- 有一种方法去这个我可以修改数据源属性?
- 有人想试试这个吗?
- 我怎么能改变我的listFormatHelper()函数做我需要它做什么,并允许按钮工作没有上面的错误?
您有两个选择:
- 不要使用数据绑定;将数据源转换为对象序列,并通过将序列中的对象添加到
Items
属性来填充列表。然后使用Items
属性管理订单,就像您当前尝试做的那样。 - 修改数据源本身以更改顺序。如何做到这一点取决于您使用的数据源。