#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 и выбрать там опцию заполнения
и я бы предложил включить свойство только для чтения, чтобы это помогло 🙂
Получайте удовольствие от программирования 😉