У меня есть приложение, которое отправляет новые значения для добавления в datagridview. Но кажется, что через определенное время, когда данные выходят за пределы размера формы, приложение зависает. Я проверил, что даже не могу прокрутить вниз.
Вот функция, которая добавляет строку в datagridview:
[DllExport("AddToGrid", CallingConvention = CallingConvention.StdCall)]
public static void AddToGrid(
[MarshalAs(UnmanagedType.LPWStr)] string formhandle,
[MarshalAs(UnmanagedType.LPWStr)] string grid_name,
[MarshalAs(UnmanagedType.R8)] double status,
[MarshalAs(UnmanagedType.R8)] double no,
[MarshalAs(UnmanagedType.R8)] double test1,
[MarshalAs(UnmanagedType.R8)] double percentage,
[MarshalAs(UnmanagedType.R8)] double marks,
[MarshalAs(UnmanagedType.R8)] double grade
)
{
try
{
DataGridView dataview = null;
Control control = null;
GuiController controller = m_controllers[formhandle];
if(!controller.m_controls.TryGetValue(grid_name, out control))
{
SendExceptionEvent(formhandle, new Exception("could not find the grid: "+grid_name));
return;
}
dataview = (DataGridView)control;
string status_string = "E";
if (status == 0 || status == 1) status_string = "A";
if (status > 1 && status<6) status_string = "P";
if (status == 6) status_string = "V";
dataview.Rows.Add(status_string, no.ToString(), test1.ToString(), percentage.ToString(), marks.ToString(), grade.ToString());
}
catch(Exception e)
{
MessageBox.Show("Issues adding value: ", e.ToString());
SendExceptionEvent(formhandle, new Exception("Issues adding value: "+ e.ToString()));
}
}
Пожалуйста, дайте мне знать, есть ли способ не связывать datagrid с каким-либо источником, и при этом он работает правильно . Я думал об использовании базы данных, но мне это не разрешено. Это всегда динамика c.
Подскажите, пожалуйста, эффективные методы.