Вывод матрицы на форму
Доброго времени суток!
Есть задача, вывести матрицу на форму(двумерный массив) через C# WinForms. Сейчас думаю каким способом это проще всего сделать. Есть на примете контрол ListBox, но я не знаю будет ли он корректно отображать её.
Имеется ввиду стандартная матрица.
Ответы (4 шт):
В Forms есть готовый компонент DataGridView. Это самый подходящий вариант. Правда, компонент достаточно мощный и его настройка потребует некоторых усилий.
Специально для матричных данных у DevExpress есть компонент PivotGrid. Но он платный.
Если собираетесь ограничиться стандартными компонентами WindowsForms, рекомендую либо использовать DataTable, либо вручную реализовать в своей матрице IList и ITypedList, чтобы представлять строки и колонки как динамические множества. Сразу же вижу потенциальную проблему в том, что DataGridView автоматически не будет добавлять / удалять колонки у матрицы при изменении данных, потребуется реализовывать это вручную.
Самый простой выриант использовать TextBox, выставив свойство MultiLine = True. А потом к свойству Text добавлять строки матрицы.
На мой взгляд, самым простым и в то же время наиболее функциональным будет сочетание DataTable вместе с DataGridView.
Сразу же вижу потенциальную проблему в том, что DataGridView автоматически не будет добавлять / удалять колонки у матрицы при изменении данных, потребуется реализовывать это вручную.
Ничего подобного, при таком коде:
И если на форму добавить, к примеру, TextBox и Button для добавления нового столбца, то реализация нажатия кнопки будет следующая:
И новая колонка будет добавлена в matrix. Более того, в силу своего утверждения о функциональности, можно сохранить эту матрицу в файл одной строчкой:
И также одной строчкой загрузить при необходимости.