Установить ширину ячейки Datagrid в приложении c # windows

У меня есть datagrid в моем приложении Windows С #, и мой код

private void BindGrid(SmsPdu pdu)
 {
   DataRow dr=dt.NewRow();
   SmsDeliverPdu data = (SmsDeliverPdu)pdu;
   dr[0]=data.OriginatingAddress.ToString();
   dr[1]=data.SCTimestamp.ToString();
   dr[2]=data.UserDataText;
   dt.Rows.Add(dr);
   dataGrid1.DataSource=dt;
  }

И моя сетка данных выглядит так: http://www.freeimagehosting.net/uploads/c368f82e0e.jpg

  • Как установить ширину всех трех столбцов: отправитель, время, сообщение?

person ACP    schedule 01.02.2010    source источник
comment
Я изменил ответ, включив в него некоторый код. Разместите свой комментарий под ним, чтобы я знал, был ли он полезен.   -  person shahkalpeshp    schedule 01.02.2010


Ответы (3)


простой способ: использовать autosize

в противном случае используйте коллекцию Columns, чтобы установить размер каждого столбца

ДОБАВЛЕНИЕ:

извините, я предположил, что вы используете DataGridView, поскольку он заменил DataGrid в .NET 2.0

для DataGrid это немного сложнее, но Google знает все!

http://www.syncfusion.com/faq/windowsforms/search/1004.aspx

person Steven A. Lowe    schedule 01.02.2010
comment
@ [Pandiya Chendur]: см. Приложение - person Steven A. Lowe; 01.02.2010
comment
@ [Пандия Чендур]: отредактируйте свой вопрос, чтобы опубликовать то, что вы пробовали, и я посмотрю, что я могу сделать. DataGridView - это не вариант? Работать с ним намного проще, чем с DataGrid ... - person Steven A. Lowe; 01.02.2010

В коллекции Columns есть свойство Width:

DataGridView1.Columns (X). Ширина = Y

Где X - это имя или индекс столбца, а Y - ширина.

person Carl Rippon    schedule 01.02.2010
comment
@rip это datagrid, а не datagridview - person ACP; 01.02.2010

Как насчет datagrid1.Columns[0].Width ?

Посмотрите на этот класс. У него есть свойство ширины, которое вы можете установить.

РЕДАКТИРОВАТЬ: посмотрите на эту страницу. И посмотрите на код под AddGridStyle, в котором показано, как создать сопоставление и установить стиль столбца, ширину и т. Д.

Надеюсь, это поможет.

EDIT2: я пишу следующий код без компилятора (просто использую отражатель и MSDN для просмотра документации). Так что будьте добры

DataGridTableStyle tableStyle = dataGrid1.TableStyles[0];
GridColumnStylesCollection colStyles = tableStyle.GridColumnStyles[0];

DataGridColumnStyle styleForCol1 = colStyles[0];
styleForCol1.Width = 165;

DataGridColumnStyle styleForCol2 = colStyles[1];
styleForCol1.Width = 125;

Код основан на том, что я понял из этого в разделе Примечания, цитируемом ниже

Элемент управления System.Windows.Forms .. ::. DataGrid автоматически создает для вас коллекцию объектов DataGridColumnStyle, когда вы устанавливаете для свойства DataSource соответствующий источник данных. Созданные объекты фактически являются экземплярами одного из следующих классов, наследующих от DataGridColumnStyle: DataGridBoolColumn или DataGridTextBoxColumn class.

person shahkalpeshp    schedule 01.02.2010