| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB .NET > динамические двумерные массивы в VB |
| Автор: aaaate 17.4.2011, 22:39 |
| Здравствуйте форумчане. Задача моей программы выбирать нужную размерность матрицы (массива) и вводить туда данные, а потом выводить. Это нужно делать, путем создания динамического двумерного массива и закрепить его с каким-нить визуальным элементом. 1) Можете на примере показать как создать динамический двумерный массив, чтобы пользователь мог вводить\выводить (от)туда данные? 2) С каким визуальным элементом его будет проще всего связать, с TextBox, DataGrid?? Заранее спасибо, за то что обратили свое внимание на эту тему. |
| Автор: aaaate 18.4.2011, 00:45 |
| Динамический массив - размер которого определяется во время работы программы. Вообще моя полная задача, - это создать программу , пользователь сможет выбирать требуемую размерность матрицы, введет данные (в какой-нить элемент управления DataGrid или TextBox, я новичок в этом, выберу, то что попроще), а моя программа решит это методом Гаусса и выдаст ответ(тоже в какой-нить элемент управления). У меня не хватит наглости всем этим грузить, я хочу сама разобраться. Но вопрос о том, как создать динамический двумерный массив и как заполнять в него данные, честно говоря завел меня в ступор (( |
| Автор: diadiavova 18.4.2011, 09:39 | ||||
Ну здесь все просто http://msdn.microsoft.com/ru-ru/library/w8k3cys2.aspx Это устаревший контрол и его уже не используют, вместо него есть DataGridView, он вполне подойдет для твоей цели.
А в чем проблема? У грида есть свойство Rows, возвращающее строки грида, туда можно программно добавлять строки удалять их и извлекать из них данные. У каждой строки есть свойство Cells, аналогичным образом возвращающее ячейки. Если надо работать с массивом(а это не самый лучший способ, предпочтительнее создать для матрицы собственный класс), то собственно данные надо переносить в двойном цикле: внешний обходит строки, внутренний - ячейки. |
| Автор: aaaate 18.4.2011, 10:27 | ||||
Спасибо конечно, с созданием массива разобрались, но
Это все равно несколько не то. !!Нужно, чтобы пользователь (обычный человек, не владеющий языком программирования) визуально сам выбрал размер требуемой для него матрицы. !! Я не знаю как это программно реализовать(( ![]() Вот я нарисовала форму. Добавила 3 элемента DataGridView, 2 элемента NumericUpDown в пункт (1) должно вводиться ![]() в пункте (2) пользователь должен регулировать размерность матрицы потом нажимает "Решить" и в (3) DataGridView получит ответ Как программно реализовать чтобы пользователь через элементы "NumericUpDown" выбрал нужную размерность матрицы?
Rows не вижу, только RowsDeafultCellStyle. Все равно это не решает проблему(( . Как программно добавлять, удалять и извлекать данные, я тоже пока что без понятий. |
| Автор: aaaate 18.4.2011, 10:41 | ||
| DataGridView более нагляден. Но увы, я не знаю, как через него реализовывать. Поэтому для ввода матрицы скорей всего буду использовать InputBox, а для вывода решения TextBox. думаю организовать что-то вроде этого:
думаю организовать что-то вроде этого. Код не большой, не так наглядно. Но мне уже хоть как-нибудь , пожертвую "красотой", главное чтоб работало. Этот код для одномерного массива. Как организовать тоже самое, но для двухмерного, объявление, ввод переменных? Я признаться запуталась несколько в этом всем |
| Автор: diadiavova 18.4.2011, 10:47 | ||||||||
Это должен сделать не пользователь, а ты. Вот так ты объявляешь массив
А вот так изменяешь его размер
Лучше будет, если размер будет устанавливаться либо через диалоговое окно, либо после выбора количества строк и столбцов пользователь должен будет нажать кнопку, подтверждающую выбор и по ее нажатию вносить изменения в массив и в грид. Не надо туда вносить имен переменных, их лучше вынести в заголовки столбцов грида, а в ячейки вноси значения. http://msdn.microsoft.com/ru-ru/library/system.windows.forms.datagridview.rows.aspx
Тебе надо работать с упомянутой коллекцией Rows и http://msdn.microsoft.com/ru-ru/library/system.windows.forms.datagridview.columns.aspx Добавлено через 4 минуты и 56 секунд И чем это плохо? Применительно к данному случаю? То, что ты предлагаешь - кривой костыль, заменяющий встроенную функциональность. И чем он лучше грида? |
| Автор: aaaate 18.4.2011, 10:55 | ||
Спасибо. Попозже отпишусь, что получилось. |
| Автор: diadiavova 18.4.2011, 15:38 | ||
|