Подтвердить что ты не робот

DataGridView, настройка ширины и высоты в DataTable

Я привязываю DataTable к GridView. Он не регулирует высоту и ширину DataTable. Как я могу увеличить ширину сетки, чтобы я показывал все столбцы и высоту, если строк немного.

enter image description here

4b9b3361

Ответ 1


просто перейдите к свойствам вашего datagrid = >

а затем в разделе Layout = >

AutoSizeColumnsMode установил его для заполнения...

Ответ 2

Чтобы авторизовать столбцы, чтобы они соответствовали данным (по ширине), а затем автоматизируйте форму для соответствия gridview (по ширине), используйте следующий код:

foreach (DataGridViewColumn column in dataGridView1.Columns)
                column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;

this.Width = dataGridView1.Width + 100;

где dataGridView1 - это имя Datagridview в этом примере, а this ссылается на экземпляр формы. 100 является константой для того, сколько пикселей вам больше требуется, чем datagridview. (обратите внимание: вам может потребоваться проверка ширины, чтобы убедиться, что вы формируете, а сетка данных данных не шире экрана пользователя)

Чтобы авторизовать datagridview для соответствия строкам (по высоте), а затем автоматизировать форму для соответствия gridview (по высоте), используйте следующий код:

int totalRowHeight = dataGridView1.ColumnHeadersHeight;

foreach (DataGridViewRow row in dataGridView1.Rows)
    totalRowHeight += row.Height;

dataGridView1.Height = totalRowHeight;
this.Height = dataGridView1.Height + 100;

где dataGridView1 - это имя Datagridview в этом примере, а this ссылается на экземпляр формы. 100 - это константа для того, сколько пикселей вам больше требуется, чем datagridview. (обратите внимание: вам может потребоваться проверка высоты, чтобы убедиться, что вы формируете, а сетка данных данных не выше экрана пользователя)

Ответ 3

Во-первых, ваша форма должна быть достаточно большой, чтобы DataGridView расширялся и отображал все столбцы. На скриншоте он выглядит недостаточно широко. Вы можете установить размер документа datagridview вручную, но редко вы знаете точную ширину каждого столбца во время разработки, потому что вы не знаете, сколько будет в каждом столбце во время выполнения. Например, в столбце Invoicedescription могут быть строки, которые различаются по длине.

То, что я обычно делаю в таких случаях, как ваш, заключается в том, чтобы поместить в форму элемент управления разделителем. Текстовое поле вверху и кнопка "Импортировать счета-фактуры" будут отображаться на верхней панели элемента управления разделителем, а DataGridView - в нижней панели. Затем установите свойство Dock DataGridView для заполнения нижней панели элемента управления разделителем. Таким образом, когда пользователь изменяет размер формы, DataGridView будет расти/сокращаться вместе с ней.

Вы также можете контролировать способ отображения столбцов, задав свойство DataGridView.AutoResizeRows.

Просто предоставляя это как опцию, я не знаю, каким образом можно автоматически изменить размер сетки на отображаемые данные. Вы можете вычислить высоту/ширину строк, а затем вручную изменить размер сетки в коде, но я бы удостоверился, что мне действительно нужно это требование в первую очередь.

Ответ 4

Это работает, полагая, что все строки имеют одинаковую высоту, даже если первая строка заголовка имеет разную высоту (например, длинные заголовки завернуты).

If List.RowCount = 0 Then
  List.Height = 0
ElseIf List.RowCount = 1 Then
  List.Height = List.ColumnHeadersHeight
Else
  List.Height = List.ColumnHeadersHeight + List.Rows(1).Height * (List.RowCount + 1)
End If

Ответ 5

Установите для datagridviewautosizecolumn значение "Все" Затем в форме, содержащей datagridview, при условии, что вы заполняете представление сетки данных в обработчике событий загрузки или каком-либо другом обработчике событий по желанию везде, где загружаются данные (должно быть, после загрузки данных): (VB)

Me.Width = DataGridView1.Width + 50 ' Number of pixels wider than the datagridview you want the form to be.

datagridview1 - это имя вашего элемента управления datagridview. Me относится к форме, содержащей элемент управления datagridview.

Вам может потребоваться либо максимизировать окно, либо привязать его к верхней и левой сторонам, чтобы обеспечить установку в зависимости от того, как заполняется большой набор данных.