как я могу получить самый длинный текст в столбце gridex janus?

#c# #winforms #janus #gridex

#c# #winforms #janus #gridex

Вопрос:

В Gridex Janus вы можете дважды щелкнуть заголовок столбца (фактически строку между заголовками 2 столбцов), и столбец слева расширится по ширине, чтобы соответствовать длине самого длинного текста. Есть ли способ получить самый длинный текст программно?

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

1. Да, есть. Вы можете использовать TextRenderer . measureText . Но если ваша цель — увеличить размер столбца программно, элемент управления, скорее всего, имеет встроенную поддержку столбцов автоматического размера.

Ответ №1:

Если ваша цель — изменить размер всех столбцов, попробуйте использовать

 GridEx.autosizeColumns()
  

если нет, попробуйте этот код linq, который возвращает max len для каждого столбца в таблице данных (при условии, что в каждом столбце есть хотя бы одно ненулевое значение, иначе Max выдаст исключение)

 List<int> maximumLengthForColumns = 
Enumerable.Range(0, dataTable.Columns.Count)
         .Select(col => dataTable.AsEnumerable()
                                 .Select(row => row[col]).OfType<string>()
                                 .Max(val => val.Length)).ToList();
  

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

 int maxLength = dataTable.AsEnumerable()
                          .SelectMany(row => row.ItemArray.OfType<string>())
                          .Max(str => str.Length);