2013-08-21 4 views
0

Дело в том, что у меня есть DataGridView1, когда я нажимаю на него. Я сохраняю некоторые значения, и после нажатия на кнопку *edit* открывается новое окно, и я извлекаю всю информацию из выбранных ячеек строк.
Но, когда я выключил это окно, я установил код для автоматического обновления моего DGV1, мне нужно после обновления, чтобы восстановить ранее отмеченную строку и получить ее снова, чтобы мой клиент мог легко продолжить работу, так как у них есть 10 000 строк, поэтому они не хотят искать следующую строку каждый раз, когда они что-то редактируют.DataGridView получить проверочную строку

+0

Я не уверен, правильно ли я получаю сообщение (некоторые могут помочь в коде/pic): вы говорите, что если вы выберете строку 250, появится всплывающее окно, вы выполните все действия на нем и сразу после закрытия popup, DGV обновляется. Из-за этого «обновления» данная строка 250 больше не отображается, а строка 1. Это то, что вы говорите? – varocarbas

+0

Именно это я и говорю. Дело в том, что я должен обновить этот DGV, поэтому в основном мне нужно установить значение выбранной строки, и после обновления мне нужно снова вызвать значение thay выбранной строки. Для этого мне просто нужен пример кода. – Hoh

+0

Но я сделал быстрый тест, и это не похоже на поведение DataGridView по умолчанию: после его обновления последняя выбранная строка остается. Не могли бы вы вставить здесь часть своего кода, где это происходит? (когда вы закрываете всплывающее окно и обновляете datagridview) – varocarbas

ответ

0

Я не знаю, как вы запрашиваете текущие индексы строк/столбцов, но я пишу код запускается из CellClick Event, который вы не должны найти какие-либо проблемы, чтобы адаптироваться к конкретным требованиям:

Private Sub DataGridView1_CellClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick 
    Dim selectedRow As Integer = e.RowIndex 
    Dim selectedCol As Integer = e.ColumnIndex 
    fillDataGridView() 

    DataGridView1.FirstDisplayedCell = DataGridView1(selectedCol, selectedRow) 
End Sub 

Где fillDataGridView() выполняет заправку.

+0

@Nidzaaaa Я имел в виду, что код DataGridView1.FirstDisplayedCell = DataGridView1 (selectedCol, selectedRow) должен знать индексы строк и столбцов, которые вы хотите показать. Я не знаю, как вы кодируете эту информацию, и именно поэтому я просто уповал на событие CellClick в качестве примера. Вам нужно заполнить обе переменные selectedRow и selectedCol с правильной информацией (любыми средствами, которые вы хотите); выполните перезарядку и, после завершения этого процесса, используйте код DataGridView1.FirstDisplayedCell и т. д. – varocarbas

+0

@Nidzaaaa Я могу вам посоветовать, если вы покажете мне часть кода, из которой вы вызываете «DataManager.DataBaseLayer.NapuniDtSQLProc. Код, который вы написали, бесполезен, потому что работает только на вашем приложении; отправьте связанный с DataGridView1 метод, из которого вы вызываете эту часть, если хотите получить дополнительную помощь. В любом случае, вы должны быть в состоянии сделать самостоятельно: как вы знаете, какова текущая выбранная строка/столбец? В этом весь смысл. – varocarbas

+0

Да, мне нужно это событие CellClick, но могу ли я использовать последнюю строку кода события DataGridView1.FirstDisplayedCell = DataGridView1 (selectedCol, selectedRow) 'в коде новой формы? Поскольку я выполняю перезарядку из этого окна 'DataManager.DataBaseLayer.NapuniDtSQLProc (« SIN_OkruziSelect », Me.Tabela)' где 'NapuniDtSQLProc' является' Public Shared Function NapuniDtSQLProc (ByVal SProcedura As String, ByVal tabela As System.Data.DataTable) Как система .Data.DataTable' – Hoh

Смежные вопросы