Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2011, 03:20   #1
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
Вопрос DataGreedViewImageColumn

Доброго времени суток! Задача такая, есть DataGreedView, заполняется данными из БД, все колонки связаны с БД, кроме одной DataGreedViewImageColumn - StatusColumn например, она не связана с БД и в ней я хочу отображать иконку для каждой строки, если предположим x=true то отображать ico_1, а если x=false то ico_2, x - это некий параметр, который я отслеживаю. Заранее блогадарен!
maryan.vetrov вне форума Ответить с цитированием
Старый 08.05.2011, 10:08   #2
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

И с чем конкретно не получается совладать?
Spawn™Production® вне форума Ответить с цитированием
Старый 08.05.2011, 13:08   #3
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Spawn™Production® Посмотреть сообщение
И с чем конкретно не получается совладать?
Я так понимаю нужно использовать сойство Icon, но как, как присвоить иконку конкретной ячейке. Если можно с примером кода.
maryan.vetrov вне форума Ответить с цитированием
Старый 08.05.2011, 14:16   #4
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Цитата:
Сообщение от maryan.vetrov Посмотреть сообщение
Я так понимаю нужно использовать сойство Icon, но как, как присвоить иконку конкретной ячейке.
Код:
((DataGridViewImageCell)dataGridView1[0, 0]).Value = Bitmap;
Столбец соответственно DataGridViewImageColumn...
Spawn™Production® вне форума Ответить с цитированием
Старый 08.05.2011, 19:12   #5
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Spawn™Production® Посмотреть сообщение
Код:
((DataGridViewImageCell)dataGridView1[0, 0]).Value = Bitmap;
Столбец соответственно DataGridViewImageColumn...
Не могли бы вы пояснить свой код, вы присваете значение ячейки Bitmap? Что такое Bitmap в вашем примере?
И у меня вопрос про иконку, а не про картинку, ну да и в случае картинки хотел бы более подробных объяснений, если Bitmap это созданный объект типа Bitmap и содержащий в себе искомое изображение, то это не сработало, остались все те же красные кресты по умолчанию.
maryan.vetrov вне форума Ответить с цитированием
Старый 08.05.2011, 19:25   #6
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Bitmap в моём понимании это наследник класса System.Drawing.Bitmap
У колонки DataGridViewImageColumn есть свойство Icon - это иконка, которая будет отображаться в ячейках данного столбца, если у ячейки Value = null и ValueIsIcon = true, также есть свойство Image - картинка, которая будет отображаться в ячейке, если у неё Value = null и ValueIsIcon = false.
Конкретно для каждой ячейки изображение задаётся так, как я указал выше.
Spawn™Production® вне форума Ответить с цитированием
Старый 08.05.2011, 19:51   #7
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Spawn™Production® Посмотреть сообщение
Bitmap в моём понимании это наследник класса System.Drawing.Bitmap
У колонки DataGridViewImageColumn есть свойство Icon - это иконка, которая будет отображаться в ячейках данного столбца, если у ячейки Value = null и ValueIsIcon = true, также есть свойство Image - картинка, которая будет отображаться в ячейке, если у неё Value = null и ValueIsIcon = false.
Конкретно для каждой ячейки изображение задаётся так, как я указал выше.
Не работает это у меня, остаются красные кресты... Если можете приведите пример кода как вы создаете столбец DataGridViewImageColumn и как вы потом присваете некой ячейке - х, иконку из файла status.ico например.
maryan.vetrov вне форума Ответить с цитированием
Старый 08.05.2011, 21:15   #8
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Так, ещё раз. Мне кажется, что Вы не совсем поняли смысл свойства Icon. Он задаётся на уровне всей колонки, т.е. определяет ту иконку, которая будет отображаться во ВСЕХ ячейках, если там Value = null и ValueIsIcon = true;

Что касается примера...
Создал новый проект. кинул на форму DataGridView, далее следующее при загрузке формы:
Код:
            dataGridView1.Columns.Add(new DataGridViewImageColumn());
            dataGridView1.Rows.Add();
            dataGridView1.Rows.Add();
            dataGridView1.Rows.Add();
            dataGridView1.Rows.Add();
            ((DataGridViewImageColumn)dataGridView1.Columns[0]).ValuesAreIcons = true;
            ((DataGridViewImageColumn)dataGridView1.Columns[0]).Icon = Icon.ExtractAssociatedIcon(@"c:\sample.ico");
            dataGridView1[0, 0].Value = Icon.ExtractAssociatedIcon(@"c:\some.ico");
sample.ico - иконка, которая будет отображаться в тех ячейках, для которых не указана другая иконка.
some.ico - иконка, которую я использую только в одной ячейке, соответственно она отображается вместо иконки по-умолчанию.
строка ((DataGridViewImageColumn)dataGridV iew1.Columns[0]).ValuesAreIcons = true; заставляет ячейки использовать именно иконки, а не изображения в качестве своих значений.
Spawn™Production® вне форума Ответить с цитированием
Старый 09.05.2011, 00:01   #9
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Spawn™Production® Посмотреть сообщение
Так, ещё раз. Мне кажется, что Вы не совсем поняли смысл свойства Icon. Он задаётся на уровне всей колонки, т.е. определяет ту иконку, которая будет отображаться во ВСЕХ ячейках, если там Value = null и ValueIsIcon = true;

Что касается примера...
Создал новый проект. кинул на форму DataGridView, далее следующее при загрузке формы:
Код:
            dataGridView1.Columns.Add(new DataGridViewImageColumn());
            dataGridView1.Rows.Add();
            dataGridView1.Rows.Add();
            dataGridView1.Rows.Add();
            dataGridView1.Rows.Add();
            ((DataGridViewImageColumn)dataGridView1.Columns[0]).ValuesAreIcons = true;
            ((DataGridViewImageColumn)dataGridView1.Columns[0]).Icon = Icon.ExtractAssociatedIcon(@"c:\sample.ico");
            dataGridView1[0, 0].Value = Icon.ExtractAssociatedIcon(@"c:\some.ico");
sample.ico - иконка, которая будет отображаться в тех ячейках, для которых не указана другая иконка.
some.ico - иконка, которую я использую только в одной ячейке, соответственно она отображается вместо иконки по-умолчанию.
строка ((DataGridViewImageColumn)dataGridV iew1.Columns[0]).ValuesAreIcons = true; заставляет ячейки использовать именно иконки, а не изображения в качестве своих значений.
Все спасибо, разобрался!
maryan.vetrov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск