30 lines
910 B
C#
30 lines
910 B
C#
using System.ComponentModel;
|
|
using System.Windows.Forms;
|
|
|
|
namespace LibationWinForms
|
|
{
|
|
public class TruncatedDataGridViewTextBoxColumn : DataGridViewTextBoxColumn
|
|
{
|
|
public TruncatedDataGridViewTextBoxColumn()
|
|
{
|
|
CellTemplate = new TruncatedDataGridViewTextBoxCell();
|
|
}
|
|
}
|
|
|
|
internal class TruncatedDataGridViewTextBoxCell : DataGridViewTextBoxCell
|
|
{
|
|
private const int MAX_DISPLAY_CHARS = 63;
|
|
private string truncatedString;
|
|
|
|
protected override object GetFormattedValue(object value, int rowIndex, ref DataGridViewCellStyle cellStyle, TypeConverter valueTypeConverter, TypeConverter formattedValueTypeConverter, DataGridViewDataErrorContexts context)
|
|
{
|
|
if (value is null || value is not string valueStr)
|
|
return value;
|
|
|
|
truncatedString ??= valueStr.Length < MAX_DISPLAY_CHARS ? valueStr : valueStr.Substring(0, MAX_DISPLAY_CHARS - 1) + "…";
|
|
|
|
return truncatedString;
|
|
}
|
|
}
|
|
}
|