#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);