Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> заполнение массива через таблицу 
V
    Опции темы
transat
Дата 17.12.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



какой компонент нужно добавить на форму чтобы можно было с помошью нее заполнять двумерный массив? и как динамически менять размеры этого компонента. нашел только DataGridView, но не знаю как ей поьзоваться. как задавать ее размер динамически? и как получить доступ к строке и столбцу?
PM MAIL   Вверх
VisualProgrammerNET
Дата 18.12.2007, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 1
Всего: 6



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


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
transat
Дата 18.12.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



неее так не катит. нужна табличка какая-нибудь. только вот не знаю этот компонент и как им пользоваться
PM MAIL   Вверх
informatik
Дата 18.12.2007, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 2
Всего: 6



Добавляешь на форму два текстбокса в них вводишь количество строк и столбцов
Далее идет кнопка по нажатию которой элементу 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++;
            }
        }


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

Дерзай!!!

Это сообщение отредактировал(а) informatik - 18.12.2007, 17:10
--------------------
namespace informatik
PM MAIL   Вверх
transat
Дата 18.12.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



Спасибо большое товарищ informatik! smile

Добавлено через 11 минут и 51 секунду
а как сделать чтобы я вот задал 3 строки и все. а то постоянно таблица вниз ползет и создает новые строки
PM MAIL   Вверх
informatik
Дата 18.12.2007, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 2
Всего: 6



 Рад помочь!  smile 

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

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

Код

dataGridView1.Rows.Clear();


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


Это сообщение отредактировал(а) informatik - 18.12.2007, 21:25
--------------------
namespace informatik
PM MAIL   Вверх
transat
Дата 18.12.2007, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



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

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

Код

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

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

Это сообщение отредактировал(а) transat - 18.12.2007, 21:52
PM MAIL   Вверх
Idsa
Дата 19.12.2007, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 4
Всего: 62



Цитата(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.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
informatik
Дата 19.12.2007, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 2
Всего: 6



Цитата

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


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

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

Цитата

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


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

--------------------
namespace informatik
PM MAIL   Вверх
transat
Дата 19.12.2007, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



спасибо всем кто отвечал в теме и по теме ;) все норм работает как нужно!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0818 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.