Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Как отображать в DataGrid иконки Добавлено: 21.11.05 12:33  

Автор вопроса:  Server | ICQ: 261844290 
Доброго времени суток, господа.
Подскажите пожалуйста как сделать что бы DataGrid отображал иконки.
Что я хочу, например отображать в DataGrid справочник сотрудников.
Сотрудники у меня группируются по категориям, расчетчикам, дальше пусть будет каталог.
На форме у меня TreeView отображает только структуру каталогов(категория, расчетчик) а в DataGrid информация о сотруднике и вложенных каталогах, которую я должен редактировать, добавлять, удалять.
С TreeView всё нормально и грид показывает структуру выбранного каталога только мне нужно что бы в гриде можно было показать если это группа иконку каталога если сотрудник другую иконку.
Как это сделать?
Заранее благодарю.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 iLLyuzor



ICQ: 223685087 

Вопросов: 9
Ответов: 77
 Профиль | | #1 Добавлено: 21.11.05 12:55
Самый простой выход - это использовать сторонние контролы, под VB6 рекомендую TrueDBGrid от Componentone.

Ответить

Номер ответа: 2
Автор ответа:
 Server



ICQ: 261844290 

Вопросов: 1
Ответов: 2
 Профиль | | #2 Добавлено: 21.11.05 16:01
Господа подскажите я на правильном пути
ImageList1 - на форме
DataGrid1 - на форме

Dim tip_ As Type = GetType(System.Drawing.Image)
'Dim im As Image
With myColumn
     .ColumnName = "Img"
     .DataType = tip_
End With
tb.Columns.Add(myColumn)
Dim row As DataRow
row = tb.NewRow()
row("Img";) = ImageList1.Images.Item(1)
tb.Rows.Add(row)

DataGrid1.DataSource = tb


iLLyuzor я не знаю как использовать твой способ.
Я начинающий в SqlSqrver и VB.NET

Ответить

Номер ответа: 3
Автор ответа:
 Server



ICQ: 261844290 

Вопросов: 1
Ответов: 2
 Профиль | | #3 Добавлено: 22.11.05 12:08
Господа программисты подскажите пожалуйста мои мысли хоть в том направлении.
Данные я беру из базы SQLServer. В SQLServer есть тип Image, может создать таблицу иконок и использовать их от туда тогда DataGrid будет показывать иконки?
Ещё прочитал что сами иконки можно добавить из файла как в саму базу Sql так и DataTable
Ниже код в котором я пытаюсь отобразить в гриде иконку которая лежит файлом на диске. Но ни ничего не получается.
Dim fs As New FileStream(";D:\ FOLDER.ICO", FileMode.OpenOrCreate, FileAccess.Read)
        Dim MyData(fs.Length) As Byte
        fs.Read(MyData, 0, fs.Length)
        fs.Close()
        Dim tb As New DataTable("Proba";)
        Dim myColumn As New DataColumn

        Dim t As Type = GetType(Image())

        With myColumn
            .ColumnName = "Img"
            .DataType = t
        End With
        tb.Columns.Add(myColumn)
        Dim row As DataRow
        row = tb.NewRow()
        row("Img";) = MyData
        tb.Rows.Add(row)

        ;DataGrid1.DataSource = tb

Грид только показывает что это байтовый массив Byte[] Array

Ответить

Номер ответа: 4
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #4 Добавлено: 25.02.06 17:10
i ne poluchitsya tak, "bytes" nado chitat' v stream a potom delat bitmap.FromStream

Ответить

Номер ответа: 5
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #5 Добавлено: 27.02.06 11:12
dlya vb.net
pisat:
Dim imag As Image = Me.PictureBox1.Image
'bufer viberi sam, u menya 1 mb        
Dim buf(1048576) As Byte
        Dim strm As New IO.MemoryStream(buf)
        Dim frmt As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
        frmt.Serialize(strm, imag)
        strm.Close()
        Me.OleDbDataAdapter.Fill(DataSet.table)
        ;DataSet.table.Rows(0).Item("bmp";) = buf
        Me.OleDbDataAdapter.Update(DataSet.table)

chitat:
        Dim buf() As Byte
        Dim imag As Image
        Me.OleDbDataAdapter1.Fill(DataSet.table)
        buf = DataSet.tamble.Rows(0).Item("bmp";)
        Dim strm As New IO.MemoryStream(buf)
        Dim frmt As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
        imag = CType(frmt.Deserialize(strm), Image)
        Me.PictureBox2.Image = imag
        strm.Close()

p.s. za krivost coda nogami ne pinat

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам