Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Datagridview.column.add / 11 сообщений из 11, страница 1 из 1
13.09.2012, 04:05
    #37955323
Datagridview.column.add
Datagridview.column.add при добавление в привязанный Datagridview добавляет колонку в начало коллекции, при чем displayindex остается правильным.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
 
        Using cmd As New OracleCommand
            With cmd
                .Connection = connection.get_connection
                .CommandType = CommandType.StoredProcedure
                .CommandText = "axp_package.get_contract_smetacodes"
                Dim OP_contractid As New OracleParameter
                With OP_contractid
                    .Direction = ParameterDirection.Input
                    .OracleDbType = OracleDbType.Int32
                    .Value = Me.ContractId
                    .Scale = 38
                End With
                Dim OP_cur As New OracleParameter
                With OP_cur
                    .Direction = ParameterDirection.Output
                    .OracleDbType = OracleDbType.RefCursor
                End With
                .Parameters.AddRange({OP_cur, OP_contractid})
                Me.ContractSmetaCodes.Clear()
                Try
                    Me.ContractSmetaCodes.Load(.ExecuteReader)
                    Me.DGV_SmetaCodes.DataSource = Me.ContractSmetaCodes
                    Me.ContractSmetaCodes.Columns(2).ReadOnly = True
                    Me.ContractSmetaCodes.Columns(3).ReadOnly = True
                    Me.DGV_SmetaCodes.Columns(0).Visible = False
                    Me.DGV_SmetaCodes.Columns(1).Visible = False
                    Dim DelButton As New DataGridViewButtonColumn
                    DelButton.Text = "Удалить"
                    ' DelButton.Name = "DelButton"
                    DelButton.HeaderText = ""
                    '  DelButton.DisplayIndex = Me.DGV_SmetaCodes.Columns.Count
                    DelButton.UseColumnTextForButtonValue = True

                    Me.DGV_SmetaCodes.Columns.Insert(Me.DGV_SmetaCodes.Columns.Count, DelButton)
                    ' Me.DGV_SmetaCodes.Columns.Add(New DataGridViewTextBoxColumn())
                    '   Me.Text = DelButton.Index.ToString
                Catch ex As OracleException
                    MessageBox.Show("Невозможно загрузить коды сметы для договора №" & row(2).ToString & " от " & _
                                                    CDate(row(3).ToString).ToString("dd.MM.yyyy") & " с " & row(8).ToString & _
                                                                                    vbCr & ex.Message & vbCr & ex.Number, "", _
                                                                                     MessageBoxButtons.OK, MessageBoxIcon.Error)
                Finally
                    For Each par As OracleParameter In .Parameters
                        par.Dispose()
                    Next
                End Try
            End With
        End Using



В итоге пока находишься в этой процедуре, то индекс 5 как и должен быть, а когда выходишь, то КнопкаКолонка получает индекс 0. В чем дело?
...
Рейтинг: 0 / 0
13.09.2012, 09:26
    #37955457
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Datagridview.column.add
Лагутин Александр,

ниасилил, выкидываем код на помойку и начинаем писать ДАЛ
...
Рейтинг: 0 / 0
14.09.2012, 08:38
    #37957007
Datagridview.column.add
pationЛагутин Александр,

ниасилил, выкидываем код на помойку и начинаем писать ДАЛ

что именно в коде заслуживает помойки? заполнение параметров odac и заполнение таблицы? или установка параметров грида?

этот кусок работает в событии загрузки. так вот, когда в режиме отладки после вызовов Me.DGV_SmetaCodes.Columns.Insert(Me.DGV_SmetaCodes.Columns.Count, DelButton)
или
Me.DGV_SmetaCodes.Columns.Add(New DataGridViewButtonColumn())

свойство кнопкиколонки index равно последнему элементу коллекции, но в событии CellContentClick свойство СolumnIndex равно 0.

В этом и вопрос: почему он меняется?
...
Рейтинг: 0 / 0
14.09.2012, 08:41
    #37957009
Datagridview.column.add
гугл говорит что у зарубежных коллег такая проблема возникала, на что они получали ответ: "забей на индекс, используй имя."
вот поэтому и спрашиваю.
...
Рейтинг: 0 / 0
14.09.2012, 13:39
    #37957713
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Datagridview.column.add
Лагутин АлександрpationЛагутин Александр,

ниасилил, выкидываем код на помойку и начинаем писать ДАЛ

что именно в коде заслуживает помойки? заполнение параметров odac и заполнение таблицы? или установка параметров грида?

принебрежение принципом разделения ответственности
...
Рейтинг: 0 / 0
14.09.2012, 14:15
    #37957804
Datagridview.column.add
pation,
подробнее можно? или вы с телефона смс пишете?
...
Рейтинг: 0 / 0
14.09.2012, 14:20
    #37957817
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Datagridview.column.add
Лагутин Александрpation,
подробнее можно? или вы с телефона смс пишете?

можно
...
Рейтинг: 0 / 0
14.09.2012, 16:23
    #37958123
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Datagridview.column.add
На вскидку. Index и DisplayIndex колонки грида - не одно и тоже
...
Рейтинг: 0 / 0
14.09.2012, 16:32
    #37958139
Datagridview.column.add
Cat2На вскидку. Index и DisplayIndex колонки грида - не одно и тоже

Это гениальнещее замечание. по сути есть что сказать?
...
Рейтинг: 0 / 0
14.09.2012, 18:32
    #37958342
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Datagridview.column.add
Лагутин АлександрCat2На вскидку. Index и DisplayIndex колонки грида - не одно и тоже

Это гениальнещее замечание. по сути есть что сказать?
А в басике

Columns.Insert эквивалентно Columns.Add в шарпе?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.01.2014, 16:59
    #38522249
Pastic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Datagridview.column.add
А в каком неймспейсе находится oracledbtype?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Datagridview.column.add / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]