【发布时间】:2020-05-28 10:04:01
【问题描述】:
我有一个应用程序正在发送要添加到数据网格视图中的新值。但似乎在一段时间后,当数据超出表单大小时,它会挂起应用程序。我检查过我什至无法向下滚动。
这是在 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()));
}
}
请让我知道是否有任何方法可以不将数据网格与某些源绑定并且仍然可以正常运行。我曾想过使用数据库,但这对我来说是不允许的。它总是动态的。
请给我建议有效的方法。
【问题讨论】:
-
请有人告诉我我能做些什么来解决这个问题。如果 datagridview 不正确,那么我可以使用哪个组件来显示运行时更改数组?
标签: c# datagridview