问题
I have a basic ListView
with a few columns.
I create a ListViewItem
using:
ListViewItem item = new ListViewItem();
item.Text = "First";
item.SubItems[1].Text = "Second";
Then I add the ListViewItem
to my ListView
ListView1.Items.Add(item);
So, I have a method where I change the Font
of the ListView1
,
and if the ListView
changes the font, all ListViewItem-s
do as well.
But if I use the .Clone()
function
ListView1.Items.Add((ListViewItem)item.Clone());
It clones the ListViewItem
and it hard codes the Font
.
So changing the ListView
font won't change the ListViewItem-s
font.
ListView1.Font = new Font("Microsoft Sans Serif", 15F, FontStyle.Regular);
回答1:
Just Dispose
the current Font
of the ListView
before setting a new one:
ListView1.Font.Dispose();
ListView1.Font = new Font("Microsoft Sans Serif", 15F, FontStyle.Regular);
This way, the ListViewItem-s
including the cloned ones will be forced to inherit the new font of the ListView
control.
来源:https://stackoverflow.com/questions/59950483/listview-cloning-removes-the-default-font-functionality