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


Автор: shark1 23.11.2008, 12:58
Сдрасте всем.
у меня в базе(Access)есть колонка "StatusInfo",когда сохроняю что то,в неё добовляется "Yes"
хочу добавить колонку image в datagridview,чтоб например при запросе шла проверка и если StatusInfo="Yes" то в колонке одна картинка,а если "No"то другая.
Подскажите как такое можно сделсть.Спасибо.

Автор: shark1 23.11.2008, 13:31
Хм,нехорошо как то,но вот нашол пример:
http://en.csharp-online.net/Presenting_Data_with_the_DataGridView_Control_in_.NET_2.0%E2%80%94Defining_a_Custom_Column_Type
вроде как раз то что мне надо,но там есть кусочек кода:
Assembly loadedAssembly = Assembly.GetExecutingAssembly();
            Stream stream =
               loadedAssembly.GetManifestResourceStream(resource);
            Image img = Image.FromStream(stream);
            cellStyle.Alignment =
               DataGridViewContentAlignment.TopCenter;
            return img;

и вот на этой строке:
 Image img = Image.FromStream(stream);
 у меня почему то выдаёт ошибку:
Value of 'null' is not valid for 'stream'.
Я создал папку"Resources" в неё положил 3 картинки,в чем может быть ошибка.Спасибо.

Автор: nagg 24.11.2008, 00:50
посмотри что у тебя в переменной resource и совпадает ли оно с именем твоего ресурса (регистрозависимо)

Автор: shark1 24.11.2008, 04:11
Поставил брекпоинт вот сдесь :
Stream stream =
               loadedAssembly.GetManifestResourceStream(resource);
и получил что в resource - CustomColumnAndCell.Green.bmp.
Где ещё можно посмотреть.Я и в пропертис проекта зашёл и там  тоже добавил в закладку"Resourcec"эти 3 картинки.
Но почемуто всеравно ошибка.Спасибо.

Автор: shark1 24.11.2008, 17:55
Плиззззз,подскажите.Спасибо

Автор: shark1 25.11.2008, 23:12
Здравствуйте.Я сильно извеняюсь, но вот я сделал так :
Код

private void dgv_ClientsWork_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            Image img = Image.FromFile(@"C:\\Data\\work.png");
            Image img1 = Image.FromFile(@"C:\\Data\\arch.png");
            Image img2 = Image.FromFile(@"C:\\Data\\vip.png");

            if (!e.FormattingApplied)
            {
                if (Convert.ToString(e.Value) == "Yes")
                {
                    e.Value = img; //Берете из ресурсов или откуда угодно.
                }
                else if (Convert.ToString(e.Value) == "No")
                {
                    e.Value = img1;
                }
                else if (Convert.ToString(e.Value) == "Arch")
                {
                    e.Value = img2;
                }

                e.FormattingApplied = true;
            }


но у меня вылетает на ошибке:
---------------------------
DataGridView Default Error Dialog
---------------------------
The following exception occurred in the DataGridView:
System.FormatException: Formatted value of the cell has a wrong type.
Подскажите плизззз.Зарание огромное спасибо.

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