powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Datagridview.column.add
11 сообщений из 11, страница 1 из 1
Datagridview.column.add
    #37955323
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
Datagridview.column.add
    #37955457
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагутин Александр,

ниасилил, выкидываем код на помойку и начинаем писать ДАЛ
...
Рейтинг: 0 / 0
Datagridview.column.add
    #37957007
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
Datagridview.column.add
    #37957009
гугл говорит что у зарубежных коллег такая проблема возникала, на что они получали ответ: "забей на индекс, используй имя."
вот поэтому и спрашиваю.
...
Рейтинг: 0 / 0
Datagridview.column.add
    #37957713
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагутин АлександрpationЛагутин Александр,

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

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

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

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

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

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

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


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