Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Не добавляется стиль в datagrid


Автор: Petro123 25.8.2009, 15:46
Не могу понять в чем проблема:

Код

  Public data_adpt As SqlCeDataAdapter
    Public ds As New DataSet()

  Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        data_adpt = New SqlCeDataAdapter()
        data_adpt.SelectCommand = New SqlCeCommand("SELECT ID, TYPE FROM DOCS", con)

        data_adpt.Fill(ds)
        DataGrid1.DataSource = ds.Tables(0)

' новый стиль
        Dim ts As New DataGridTableStyle
        ts.MappingName = "DOCS"          

        Dim gc As New DataGridTextBoxColumn()
        gc.MappingName = "ID"
        gc.HeaderText = "ID"
        gc.Width = 380
        ts.GridColumnStyles.Add(gc)

        DataGrid1.TableStyles.Clear()
        DataGrid1.TableStyles.Add(ts)
    End Sub


Не могу понять в чем дело, в гриде должен выходить один столбец, с определенным форматированием. А выходит 2 столбца Id и Doc(как бы по умолчанию), точно так же как если бы я не добавлял новый стиль!!!
Что я сделал не так?

Автор: diadiavova 25.8.2009, 16:39
Цитата(Petro123 @  25.8.2009,  16:46 Найти цитируемый пост)
точно так же как если бы я не добавлял новый стиль

Так ты же его добавляешь при загрузке формы smile 

Автор: Petro123 26.8.2009, 07:11
Я в курсе, 
так он не добавляется

Автор: diadiavova 26.8.2009, 08:10
Цитата(Petro123 @  26.8.2009,  08:11 Найти цитируемый пост)
так он не добавляется 

Теперь я ничего не понял. В новом стиле (который не добавляется) у тебя два столбца ID и DOCS
Дальше ты пишешь 
Цитата(Petro123 @  25.8.2009,  16:46 Найти цитируемый пост)
А выходит 2 столбца Id и Doc

Я подумал это оно и есть.

Вообще я не помню как там в старом гриде это делается(он уже не используется), но если не ошибаюсь, в стиле таблицы надо задать свойство MappingName, чтобы она связывалась с данными и для каждой колонки тоже надо указать это свойство, чтобы было понятно какую колонку источника она должна отображать. В противном случае будет отображаться дефолтный стиль. Но могу ошибаться, не помню уже. 
А почему DataGridView не используешь?

Автор: Petro123 27.8.2009, 07:05
Спасибо за советы, 
data_adpt.Fill(ds,"DOCS") надо было.
Цитата

А почему DataGridView не используешь?

Хм, не знаю, что есть то и  использую. 
У меня VS-2005. 
New Project - Smart Device - Pocket PC 2003 - Device Application 1.0
Там в ToolBox только этот компонент DataGrid. Если можно воспользовваться более продвинутым компонентом, буду очень признателен, если подскажете как.
И вообще он какой то урезанный.
Не нашел свойств описанных в MDSN:
двойной клик, редактирование ячейки(ReadOnly), цвета ячеек() и другое...

Добавлено через 3 минуты и 48 секунд
Даже нет DataGridBoolColumn, 
не могу изменить текущую ячейку, например
myDataGrid.CurrentCell.ColumnNumber = 2
myDataGrid.CurrentCell.RowNumber = 1
ругается ...

Автор: diadiavova 27.8.2009, 09:24
Petro123, обычно люди указывают , что для мобильных устройств пишут, там всё другое и я в этом не разбираюсь вообще. Я думал, что речь о десктоп-приложении.

Автор: Petro123 27.8.2009, 10:13
Прости, забыл :(

Добавлено через 5 минут и 57 секунд
Не думал что есть большая разница, 
просто видел приложения для такого же моб устройства с datagrid, в котором все эти свойства были...

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