Прокрутка сетки данных

#vb.net #datagridview

#vb.net #сетка данных

Вопрос:

У меня есть некоторые данные в моем DataGridView. Я хочу, чтобы пользователь мог прокручивать данные, но не выбирать какой-либо элемент. Если я сделаю enabled=false , даже прокрутка не будет работать.

Во-вторых, размер сетки таков, что на данный момент в ней отображаются 10 элементов. Я хочу показать выбранный элемент (выбор, выполняемый кодом, а не пользователем), является ли это элементом № 15 или около того.

Пожалуйста, посоветуйте, как этим управлять.

Ответ №1:

Вы можете установить свойство Только для чтения для сетки, а затем задать стиль таким образом, чтобы цвета переднего плана и фона выбранного элемента были такими же, как и те, которые не выбраны. Элементы действительно будут выбраны, но выделение не будет видно.

 Private Sub SetMyStyle()
    grid.ReadOnly = True
    grid.DefaultCellStyle.SelectionForeColor = grid.DefaultCellStyle.ForeColor
    grid.DefaultCellStyle.SelectionBackColor = grid.DefaultCellStyle.BackColor
    grid.RowHeadersVisible = False
End Sub
  

О выборе:
чтобы выбрать 15-ю строку и убедиться, что она видна:

 Private Sub SelectMyRow()
    grid.ClearSelection()
    grid.Rows(15).Selected = True
    If Not grid.Rows(15).Displayed Then
        grid.FirstDisplayedScrollingRowIndex = 15
    End If
End Sub
  

Комментарии:

1. 1 хотя (по крайней мере, в C #) вы должны быть уверены, что установка выбранной строки и scrollingrowindex выполняется после завершения привязки к данным.

Ответ №2:

для определения размера вам нужно просто перейти в propertymenu для вашей datagrid, затем перейти в Layout, AutoSizeColumnsMode и выбрать там опцию заполнения

и я бы предложил включить свойство только для чтения, чтобы это помогло 🙂

Получайте удовольствие от программирования 😉