forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   DataGridView (http://forum.boolean.name/showthread.php?t=16300)

Winner 07.02.2012 02:55

DataGridView
 
Как в отдельную ячейку DataGridView поместить картинку?

Ну типа

DataGridView[1,1]=image.FromFile();

moka 07.02.2012 03:05

Ответ: DataGridView
 
Есть тип колонки. Есть стандартный тип, DataGridViewImageColumn.
А вообще гугл даёт отличные результаты на запрос: "DataGridView Image in cell"

http://msdn.microsoft.com/en-us/library/2ab8kd75.aspx

Можно ещё самому отрисовывать, но для этого нужно overload'ить Paint методы для самой таблицы.

Да, и так навигация по таблице не пройдёт. Вообще подход работы с таблицей другой.

Winner 07.02.2012 03:13

Ответ: DataGridView
 
Я, естественно, искал в первую очередь в гугле, но так и не смог разобраться, как поместить картинку в отдельную ячейку. Весь столбец заполнить не проблема, а одну только нужную мне ячейку не сумел.

moka 07.02.2012 03:18

Ответ: DataGridView
 
Ну дык, столбец - имеет лишь описание данных.
Строка - это отдельная запись, имеет список ячеек, тип данных которых зависит от столбца.
Вставляя строку, назначай картинку.

pax 07.02.2012 14:31

Ответ: DataGridView
 
Цитата:

Сообщение от MoKa (Сообщение 218865)

Такие ссылки лучше:
http://msdn.microsoft.com/ru-ru/library/2ab8kd75.aspx
:)

Winner 07.02.2012 18:00

Ответ: DataGridView
 
Не догоняю ни в какую. Всё, что у меня получается, это System.Drawing.Bitmap или что-то вроде этого.

Winner 11.02.2012 02:47

Ответ: DataGridView
 
Кое-как кое в чем разобрался. Вот как выглядит моя процедура для создания поля x на x.

Код:

        public void CreateField(int x)
        {
            createbutton.Enabled=false;
            field.RowCount = 0;
            field.ColumnCount = 0;
            for (int i = 0; i < x; i++)
            {
                DataGridViewImageColumn col = new DataGridViewImageColumn();
                col.Image = imageList1.Images[0];
                field.Columns.Add(col);
                field.Rows.Add();
                field.Rows[i].Height = (field.Height) / x;
                field.Columns[i].Width = (field.Width) / x;
                col.Dispose();
            }
        }

DataGridView field;


Думаю, понятно, что я использую DataGridView не как таблицу с данными, а это у меня поле для размещения нужных мне картинок. На деле я пишу игру Халма.
В моем случае imageList1.Images[0] - тупо прозрачная картинка png.

В общем прошу покритиковать и посоветовать, как можно модифицировать и улучшить эту процедуру.

Мое понимание следующее - я создаю колонки с типом картинки и дальше к ячейкам как и хотел обращаюсь по координатам, чтобы заменить картинку: field[0,0].Value=imageList1.Images[1];


Часовой пояс GMT +4, время: 22:25.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot