Member 14588284 Ответов: 1

Msgbox когда столбцы oerder меняются


Привет Как я могу открыть окно сообщения при изменении положения столбцов datagridview

Что я уже пробовал:

<pre>Private Sub RAPOR_AllowUserToOrderColumnsChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RAPOR.AllowUserToOrderColumnsChanged
        MsgBox("JJJ")  END SUB

1 Ответов

Рейтинг:
2

Wendelius

Попробуйте справиться с этим Практическое руководство.ColumnDisplayIndexChanged Событие (System.Окна.Формы) | Microsoft Docs[^] вместо

ДОБАВЛЕН
Если я правильно понимаю ситуацию, вы можете использовать событие, упомянутое выше, и создавать новый источник данных каждый раз, когда порядок меняется.

Например, если у вас есть два объекта DataGridView в окне (dgv1 и dgv2), рассмотрите следующий код

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim data1 As DataTable = New DataTable()

        data1.Columns.Add("First")
        data1.Columns.Add("Second")
        data1.Columns.Add("Third")

        dgv1.DataSource = data1
        DisplayColumns()
    End Sub

    Private Sub dgv1_ColumnDisplayIndexChanged(sender As Object, e As DataGridViewColumnEventArgs) Handles dgv1.ColumnDisplayIndexChanged
        DisplayColumns()
    End Sub

    Private Sub DisplayColumns()
        Dim data2 As DataTable = New DataTable()

        data2.Columns.Add("Ordinal", GetType(Integer))
        data2.Columns.Add("ColumnName", GetType(String))

        Dim colList = From column In dgv1.Columns.Cast(Of DataGridViewColumn) Order By column.DisplayIndex

        For Each col As DataGridViewColumn In colList
            data2.Rows.Add(col.DisplayIndex, col.HeaderText)
        Next

        dgv2.DataSource = data2
    End Sub
End Class


Member 14588284

по сути я хочу этого

когда я изменил положение столбца datagrid, то
еще одна строка datagrid изменяется следующим образом
мой первый текст заголовка столбцов datagrid
С FILTRE2
.Грядки.Четкий()
Для s = 0 до RAPOR.Столбцы.Количество - 1
.Строки.Добавить()
.Rows(.Rows.Граф - 1).Ячейки(0).Значение = .Строки.Рассчитывать
.Rows(.Rows.Граф - 1).Ячейки(1).Значение = RAPOR.Столбцы(ы).HeaderText
Следующий

Конец С

Wendelius

Смотрите обновленный ответ

Member 14588284

Большое спасибо

я использовал этот код
его рабочий Тан снова

Частная суб RAPOR_ColumnDisplayIndexChanged(как byval отправителя как объект, как byval E Как системы.Окна.Формы.DataGridViewColumnEventArgs) обрабатывает RAPOR.ColumnDisplayIndexChanged
FILTRE2.строки.Четкий()
Тусклый коллист = из колонки в РАПОРЕ.Столбцы.Cast(Of DataGridViewColumn)() порядок по столбцам.DisplayIndex

Для каждого col как DataGridViewColumn в colList
FILTRE2.Строк.Добавить(кол.DisplayIndex, коль.HeaderText)
Следующий

Конец Подводной Лодки

Wendelius

Пожалуйста :)