Автоматическая ширина столбца 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());
}

Ответы (0 шт):