Автоматическая ширина столбца ListView C#
Добрый день помогите пожалуйста автоматически подбирать нужную ширину listView при заполнении таблицы. Ранее ширина столбца была фиксированой, но из-за увеличения полей это стало неудобно, есть поля которые на данный помент пустые, другие имеют всего два символа, поэтому исопльзование фиксированой ширины стало нецелесообразно.
searchedCompetitorList.FirstOrDefault()
?.ToDictionary().Keys.ForEach(key =>
{
columns.Add(new ColumnHeader() { Text = key });//this.listView1.Width / 100 * 20});
});
this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
Я добавил следующий фрагмент кода, но это не решает мою проблему полностью. Так как текст в поле если короткий например 5 символов или меньше видно полностью если свыше получается "Кинот.." тоесть полностью слово "Кинотеатр" не вмещается. Может нужно ещё что-то указать в параметрах ?
Сам контрол создаётся вручную со следующими параметрами
this.listView1.Font = new System.Drawing.Font("Times New Roman", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.listView1.FullRowSelect = true;
this.listView1.GridLines = true;
this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(2, 2);
this.listView1.MultiSelect = false;
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(723, 179);
this.listView1.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.listView1.TabIndex = 74;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details;
и далее
this.layoutControl2.Controls.Add(this.listView1);
this.layoutControl2.Location = new System.Drawing.Point(22, 62);
this.layoutControl2.Name = "layoutControl2";
this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1996, 0, 650, 400);
this.layoutControl2.Root = this.layoutControlGroup1;
this.layoutControl2.Size = new System.Drawing.Size(727, 183);
this.layoutControl2.TabIndex = 73;
this.layoutControl2.Text = "layoutControl2";
затем наполняется следующим образом
// Columns
if (this.listView1.Columns.Count <= 0)
{
ICollection<ColumnHeader> columns = new List<ColumnHeader>();
searchedCompetitorList.FirstOrDefault()
?.ToDictionary().Keys.ForEach(key =>
{
columns.Add(new ColumnHeader() { Text = key });//this.listView1.Width / 100 * 20});
});
this.listView1.Columns.AddRange(columns.ToArray());
this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
//listView1.AutoResizeColumn(0,ColumnHeaderAutoResizeStyle.HeaderSize);
// this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
}
//Items
searchedCompetitorList.ForEach(
p => { listItem.Add(new ListViewItem(p.ToDictionary().Values.ToArray())); });
this.listView1.Items.AddRange(listItem.ToArray());
}