Случайный cra sh при использовании шрифта listview - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть следующий код:

foreach (ListViewItem item in temp.Items)
{
                item.Font.Dispose();
                ProjectenBox.Items.Add((ListViewItem)item.Clone());
}

Я использую это для копирования ListViewItems в другое представление списка, и это работает как задумано.

Случайно происходят сбои. Это как 1% изменение, я получаю эту ошибку:

System.ArgumentException: Ongeldige parameter.
   bij System.Drawing.Font.ToLogFont(Object logFont, Graphics graphics)
   bij System.Drawing.Font.ToLogFont(Object logFont)
   bij System.Drawing.Font.ToHfont()
   bij System.Windows.Forms.Control.FontHandleWrapper..ctor(Font font)
   bij System.Windows.Forms.Control.get_FontHandle()
   bij System.Windows.Forms.Control.SetWindowFont()
   bij System.Windows.Forms.Control.OnHandleCreated(EventArgs e)
   bij System.Windows.Forms.ListView.OnHandleCreated(EventArgs e)
   bij System.Windows.Forms.Control.WmCreate(Message& m)
   bij System.Windows.Forms.Control.WndProc(Message& m)
   bij System.Windows.Forms.ListView.WndProc(Message& m)
   bij System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Переведено на английский sh

System.ArgumentException: Invalid parameter.
   at System.Drawing.Font.ToLogFont(Object logFont, Graphics graphics)
   at System.Drawing.Font.ToLogFont(Object logFont)
   at System.Drawing.Font.ToHfont()
   at System.Windows.Forms.Control.FontHandleWrapper..ctor(Font font)
   at System.Windows.Forms.Control.get_FontHandle()
   at System.Windows.Forms.Control.SetWindowFont()
   at System.Windows.Forms.Control.OnHandleCreated(EventArgs e)
   at System.Windows.Forms.ListView.OnHandleCreated(EventArgs e)
   at System.Windows.Forms.Control.WmCreate(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ListView.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

root причина этой ошибки

item.Font.Dispose();

Но этот код нужен, так как я не хочу иметь «связанный» шрифт. (референсный пост)

Я что-то здесь не так делаю?

...