Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > заполнение массива через таблицу


Автор: transat 17.12.2007, 21:19
какой компонент нужно добавить на форму чтобы можно было с помошью нее заполнять двумерный массив? и как динамически менять размеры этого компонента. нашел только DataGridView, но не знаю как ей поьзоваться. как задавать ее размер динамически? и как получить доступ к строке и столбцу?

Автор: VisualProgrammerNET 18.12.2007, 14:33
Компонент - текстбокс =) Программно лепишь их на форму в зависимости от того, какая у тя матрица, и кнопочку внизу "заполнить". Далее сам =)

Автор: transat 18.12.2007, 14:45
неее так не катит. нужна табличка какая-нибудь. только вот не знаю этот компонент и как им пользоваться

Автор: informatik 18.12.2007, 17:07
Добавляешь на форму два текстбокса в них вводишь количество строк и столбцов
Далее идет кнопка по нажатию которой элементу dataGridView присваивается количесвто строк и столбцов..

 
Код

private void button1_Click(object sender, EventArgs e)
        {
            int n = Convert.ToInt32(textBox1.Text);
            int m = Convert.ToInt32(textBox2.Text);

            dataGridView1.RowCount = n;
            dataGridView1.ColumnCount = m;           
        }


Вводим значения в табличку иначе будут ошибки (это касается и текстбоксов)...........

Далее перебираем ячейки и записываем их в массив......

Код

private void button2_Click(object sender, EventArgs e)
        {

            int i = 0;
            int j = 0;

            while (i < dataGridView1.RowCount)
            {
                while (j < dataGridView1.ColumnCount)
                {
                    dataGridView1.Rows[i].Cells[j].Value; // По очереди получаем каждую ячейку и записываем в массив с известными индексами
                    j++;
                }

                i++;
            }
        }


Вариантов много, это один из них...

Дерзай!!!

Автор: transat 18.12.2007, 19:51
Спасибо большое товарищ informatik! smile

Добавлено через 11 минут и 51 секунду
а как сделать чтобы я вот задал 3 строки и все. а то постоянно таблица вниз ползет и создает новые строки

Автор: informatik 18.12.2007, 21:17
 Рад помочь!  smile 

Это элементарно, можно например удалить строки.

Добавь в обработчик нажатия первой кнопки, перед строками установки размера таблицы, вот такой код:

Код

dataGridView1.Rows.Clear();


Ты бы нашел и почитал литературу, по C# и технологии  .NET, и сам бы научился находить такие решения.......

Автор: transat 18.12.2007, 21:46
в том то и дело что уже посмотрел не одну книгу, но в разделе про виндоуз формы рассматриваются меню, всякие строки состояния, работа с принтером, рисование, но чтото ни в одной не увидел такого компонента как DataGridView

Добавлено @ 21:51
чтото не очень пашет то что ты написал. все равно появляется еще одна.я написал вот так:

Код

f2.dataGridView1.Rows.Clear();
f2.dataGridView1.RowCount = n;
f2.dataGridView1.ColumnCount = m;

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

Автор: Idsa 19.12.2007, 08:16
Цитата(transat @  18.12.2007,  21:46 Найти цитируемый пост)
ни в одной не увидел такого компонента как DataGridView

Смелое заявление. Готов поспорить, что DataGridView - самый "популярный" в этом разделе.

Цитата(transat @  18.12.2007,  19:51 Найти цитируемый пост)
Спасибо большое товарищ informatik!

+1 за помощь transat 

Цитата(transat @  18.12.2007,  21:46 Найти цитируемый пост)
и вот когда вторую строку я начинают заполнять, то появляется еще одна третья

Так в DataGridView реализовано добавление новых строк. Если Вы заранее знаете количество строк и столбцов (а судя по предыдущим постам, это так), то можно отключить возможность добавления строк, оставив возможность редактирования.
Добавление отключается либо вот так: dataGridView.AllowUserToAddRows = false, либо через окошко Properties.

Автор: informatik 19.12.2007, 19:41
Цитата

чтото не очень пашет то что ты написал. 


Я тебя не так понял....

Вот Idsa дал тебе дельный совет:

Цитата

dataGridView.AllowUserToAddRows = false, либо через окошко Properties.


Кстати через Properties ты много чего можешь настроить, достаточы некоторые знания английского...

Автор: transat 19.12.2007, 22:03
спасибо всем кто отвечал в теме и по теме ;) все норм работает как нужно!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)