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


Автор: Demonid 12.10.2007, 15:42
Какой аналог StringGrid есть в C#?
Можете мене литературу подкинуть?

Автор: zaver 12.10.2007, 16:02
DataGridView
девствительно, лучше прочти хоть одну книжку перед тем как ставить такие вопросы. читай Троелсена - "С#2005 и платформа .Net" или Нейгела "C#2005 для профессионалов". 

Автор: Demonid 12.10.2007, 16:08
Цитата(zaver @ 12.10.2007,  16:02)
DataGridView
девствительно, лучше прочти хоть одну книжку перед тем как ставить такие вопросы. читай Троелсена - "С#2005 и платформа .Net" или Нейгела "C#2005 для профессионалов".

Спасиба, а вторую книгу где можно достать из инета?

Автор: kurzon 14.10.2007, 10:38
Цитата(zaver @ 12.10.2007,  16:02)
DataGridView
девствительно, лучше прочти хоть одну книжку перед тем как ставить такие вопросы. читай Троелсена - "С#2005 и платформа .Net" или Нейгела "C#2005 для профессионалов".


DataGridView   можна работать только с базами данных или нет?

Автор: zaver 14.10.2007, 23:39
нет

Автор: kurzon 15.10.2007, 18:24
Цитата(zaver @ 14.10.2007,  23:39)
нет

Можеш подробно?

Автор: zaver 15.10.2007, 20:04
Цитата(kurzon @ 15.10.2007,  18:24)
Цитата(zaver @ 14.10.2007,  23:39)
нет

Можеш подробно?

работать он может и не только с базами даных

Автор: zaver 15.10.2007, 20:25
по делу:
есть строки, есть столбцы - DataGridViewColumn, DataGridViewRow. им отвечают коллекции dataGridView1.Columns и dataGridView1.Rows. 
строки имеют коллекцию клеток dataGridView1.Rows[0].Cells из DataGridViewCell.
есть разные типы клеток и столбцов. в одном столбце может быть только один тип клеток. создавать можно только клетки типов:
DataGridViewTextBoxCell
DataGridViewButtonCell (событие он Click отлавливается также как и у текстовой ячейки)
DataGridViewComboBoxCell
DataGridViewImageCell
DataGridViewCheckBoxCell
DataGridViewLinkCell
и они все наследуются от абстрактного класса DataGridViewCell
аналогично и DataGridViewColumn (только он не абстрактный)

в коллекции Cells должно быть ровно столько клеток, сколько столбцов в DataGridView, тип клетки должен соответствовать типу столбца. Перед "ручным" заполнением DataGridView поставь ему св-во DataSource=null;

DataSource можно присваивать не только DataSource из БД. например можно туда запихнуть коллекцию своих объектов, тогда таблица отобразится так: по вертикали объекты из коллекции, по горизонтали свойства этих объектов. колонки подпишуться именами свойств, чтобы не показывать какое-то свойство в таблице надо поставить над ним атрибут [Browsable(false)].

вообще DataGridView - очень сложный и многофункциональный компонент, все сразу про него рассказать не могу.

Добавлено через 1 минуту и 9 секунд
пример: 
Код

   dataGridView1.DataSource = null;
            DataGridViewColumn col = new DataGridViewTextBoxColumn();
            col.Name = "";
            col.HeaderText="";
            col.ValueType = typeof(string);
            dataGridView1.Columns.Add(col);
            DataGridViewRow row=new DataGridViewRow();
             cell=new DataGridViewTextBoxCell();
            cell.ValueType = typeof(string);
            cell.Value = "sdfsf";
            row.Cells.Add(cell);
            dataGridView1.Rows.Add(row);


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