ListView 克隆删除了默认字体功能

ListView cloning removes the default font functionality

我有一个基本的 ListView,其中包含几列。

我创建一个 ListViewItem 使用:

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

然后我将 ListViewItem 添加到我的 ListView

ListView1.Items.Add(item);

所以,我有一个方法可以更改 ListView1Font, 如果 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);

只是 Dispose ListView 的当前 Font,然后再设置新的:

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

这样,包括克隆的ListViewItem-s将被强制继承ListView控件的新字体。