Сгруппируйте текстовые поля, чтобы добавить их в список из приложения Windows Form - PullRequest
0 голосов
/ 03 декабря 2010

Я работаю над приложением Windows Form и хочу разрешить пользователю добавлять группы (2) входных данных - будь то 2 текстовых поля или какой-то другой элемент управления.Для каждого «набора» они будут вводить текст в каждое поле.Затем я перебрал бы каждый «набор» в словаре, где один вводится как ключ, а другой - как значение.По умолчанию он начинается с 2 наборов входных данных.

Итак, моя проблема / вопрос:

1) Поскольку я хочу разрешить им добавлять предельное количество входов (но неизвестно, какмногие из них добавят), что было бы лучшим контролем для этого.

2) как мне сгруппировать каждые 2 входа вместе, чтобы я мог добавить одно поле в качестве ключа и одно в качестве значения в словаре.

Любые мысли.

1 Ответ

1 голос
/ 03 декабря 2010

Я бы создал пользовательский элемент управления, поместил в него два текстовых поля с именами конструктора KeyTextBox и ValueTextBox, затем в класс пользовательского элемента управления добавил бы два свойства, одно для ключа, а другое для значения.

Теперь предположим, что у вас есть кнопка «Добавить пару ввода текста» в главной форме, а также пустая панель, которая будет содержать ваш список кнопок. В коде для этой кнопки вы просто создаете экземпляр своего KeyValuePairTextBoxControl, а затем добавляете его в коллекцию Controls панели.

Теперь, когда вы хотите создать словарь на основе этих значений, вы просто просматриваете коллекцию элементов управления этой панели, и для каждого KeyValuePairTextBoxControl вы можете получить доступ к его свойствам ключа и значения, чтобы поместить их в словарь.

Вы также можете выставлять измененные текстовые события текстовых полей через свой пользовательский элемент управления, и при создании каждого элемента управления вы подключаете некоторый обработчик для этих событий, чтобы вы могли каждый раз обновлять свой словарь.

Возможно, вы сможете сделать это намного чище с помощью некоторых функций привязки данных, но, как правило, это может быть намного сложнее в зависимости от деталей того, что вы хотите сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...