У меня есть 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."
Кнопка перемещения вверх КОД:
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);
}
}
ВОПРОСЫ:
- Есть ли способ пойти оэто где я могу изменить свойство DataSource?
- Кто-нибудь хочет попробовать это?
- Как я могу изменить мою функцию listFormatHelper (), чтобы сделать то, что мне нужно, и разрешитькнопки для работы без ошибок выше?