Клонирование ListView удаляет функциональность шрифта по умолчанию - PullRequest
1 голос
/ 28 января 2020

У меня есть основа c ListView с несколькими столбцами.

Я создаю ListViewItem, используя:

ListViewItem item = new ListViewItem();
item.Text = "First";
item.SubItems[1].Text = "Second";

Затем я добавляю ListViewItem к своему ListView

ListView1.Items.Add(item);

Итак, у меня есть метод, в котором я изменяю Font из ListView1, и если ListView меняет шрифт, все ListViewItem-s также делают это.

Но если я использую функцию .Clone()

ListView1.Items.Add((ListViewItem)item.Clone());

Она клонирует ListViewItem и жестко кодирует Font.

Так что изменение ListView шрифт не изменит ListViewItem-s шрифт.

ListView1.Font = new Font("Microsoft Sans Serif", 15F, FontStyle.Regular);

1 Ответ

0 голосов
/ 29 января 2020

Просто Dispose текущий Font из ListView перед установкой нового:

ListView1.Font.Dispose();
ListView1.Font = new Font("Microsoft Sans Serif", 15F, FontStyle.Regular);

Таким образом, ListViewItem-s, включая клонированные, будут вынуждены наследовать новый шрифт элемента управления ListView.

SOQ59950483

...