Как установить фокус на определенную строку в сетке данных / сетке? - PullRequest
6 голосов
/ 26 декабря 2011

У меня есть сетка данных / сетка. Я изначально заполняю сетку 10 строками. При каждом нажатии кнопки я продолжаю добавлять 10 строк в таблицу данных / сетку. Теперь я хочу установить фокус на последний ряд при каждом заполнении сетки. Я могу получить индекс этой строки, но не могу установить фокус на эту конкретную строку.

Кто-нибудь из вас знает, как это сделать в C #?

Ответы [ 6 ]

14 голосов
/ 26 декабря 2011

Попробуйте это

dataGridView1.ClearSelection();
int nRowIndex = dataGridView1.Rows.Count - 1;

dataGridView1.Rows[nRowIndex].Selected = true;
dataGridView1.Rows[nRowIndex].Cells[0].Selected = true;
4 голосов
/ 26 декабря 2011

Для WinForms DataGridView:

myDataGridView.CurrentCell = myDataGridView.Rows[theRowIndex].Cells[0];

Для WebForms GridView используйте свойство SelectedIndex

myGridView.SelectedIndex = theRowIndex;
1 голос
/ 26 декабря 2011

Попробуйте это ...

DataGridViewRow rowToSelect = this.dgvJobList.CurrentRow;

rowToSelect.Selected = true;



rowToSelect.Cells[0].Selected = true;

this.dgvJobList.CurrentCell = rowToSelect.Cells[0];

this.dgvJobList.BeginEdit(true);
0 голосов
/ 16 декабря 2017

Это сообщение было отправлено богом.Я использую VB в Visual Studio 2017 и просто нужно перейти к нижней части DATAGRID, чтобы позволить пользователю вводить данные.Изучив эти ответы, я нашел это решение и подумал, что другие могут найти его полезным.

Private Sub AddBUTTON_Click(sender As Object, e As RoutedEventArgs) Handles 
AddBUTTON.Click
        ' Go to bottom to allow user to add item in last row
        DataGrid.Focus()
        DataGrid.UnselectAll()
        DataGrid.SelectedIndex = 0
        DataGrid.ScrollIntoView(DataGrid.SelectedItem)
        Dim endofitems As Integer = DataGrid.Items.Count         
        DataGrid.ScrollIntoView(DataGrid.Items.GetItemAt(endofitems - 1))
    End Sub
0 голосов
/ 16 ноября 2017

Попробуй, это у меня работает

   public static void ItemSetFocus(DataGrid Dg, int SelIndex)
    {
        if (Dg.Items.Count >= 1 && SelIndex < Dg.Items.Count)
        {
           Dg.ScrollIntoView(Dg.Items.GetItemAt(SelIndex));
           Dg.SelectionMode = DataGridSelectionMode.Single;
           Dg.SelectionUnit = DataGridSelectionUnit.FullRow;
           Dg.SelectedIndex = SelIndex;
           DataGridRow row = (DataGridRow)Dg.ItemContainerGenerator.ContainerFromIndex(SelIndex);
                row.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
        }
    }
0 голосов
/ 15 декабря 2013

Попробуйте, я хорошо работаю с приведенным ниже фрагментом скрипта в Extjs 4.2.0.

//currentIndex is the index of grid row
var rowElement = this.getView().getRecord(currentIndex);
this.getView().focusRow(rowElement);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...