2013-09-11 3 views
0

Я искал размер DataGridView в соответствии с его содержанием. Поскольку источник данных в виде сетки может иметь разный размер в зависимости от данных в нем. Я нашел изменение размера DataGridview в соответствии с размером формы, но не смог изменить размер DataGridView в соответствии с его содержимым. У кого-нибудь есть идея? enter image description hereReizing DataGridView в соответствии с его содержанием

+0

Вы можете res ize отдельных столбцов в соответствии с их содержанием. Конечно, было бы лучше сохранить изменение размера сетки, привязанной к размеру формы? – RedEyedMonster

+0

try 'datagridview.AutoResizeColumns()' – AsfK

+0

@Asfk dv.AutoResizeColumns() будет автоматически изменять размеры столбцов в соответствии с содержимым, я хочу, чтобы DataGridView автоматически изменялся в соответствии со всем содержимым. Есть ли способ? –

ответ

2

Первое использование Anchor свойство, чтобы закрепить свои элементы формы, чтобы сформировать границы. Я сделал пример, чтобы проиллюстрировать его. Существует Groupbox с некоторым случайным контролем и DataGridView с многими колоннами:

Example form with DataGridView and some random controls

Вот установка Якоря для элементов формы:

enter image description here

Теперь, когда я загрузить форму , Я вычисляю общую ширину столбцов dataGridView и соответственно увеличиваю их с ширины:

private void Form1_Load(object sender, EventArgs e) 
    { 
     int totalWidth = 0; 
     foreach (DataGridViewColumn col in dataGridView1.Columns) 
      totalWidth += col.Width; 

     //assign Form1.width (add 100 extra pixels for borders etc.) 
     this.Width = totalWidth + groupBox1.Width + 100; 
    } 
+0

+100 для чего? –

+0

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

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