У меня есть событие, которое срабатывает после щелчка по узлу дерева, затем создается сетка данных и добавляется в панель:
void tvd_NodeClickEvent(double animal, string experiment, string pluginIdentifier)
{
DataGridDisplay dgv = new DataGridDisplay(panel4);
dgv.addDatagrid(animal, experiment, pluginIdentifier);
}
Я пытаюсь удалить старую сетку данных, выполнив следующие действия:
panel4.Controls.Remove(datagrid);
panel4.Invalidate();
И затем добавление новой сетки данных:
panel4.Controls.Add(datagrid);
Проблема в том, что сетки данных рисуют себя поверх друг друга, не удаляя старый?Есть идеи?
Спасибо.
РЕДАКТИРОВАТЬ: добавлен дополнительный код
void ConfigureDatagrid()
{
datagrid.Resize += new EventHandler(datagrid_Resize);
panel4.Controls.Remove(datagrid);
panel4.Invalidate();
datagrid.Location = new System.Drawing.Point(0, 40);
panel4.Controls.Add(datagrid);
columnsWidth = datagrid.Columns.GetColumnsWidth(DataGridViewElementStates.Visible);
checkDatagridControls();
datagrid.ScrollBars = ScrollBars.Both;
datagrid.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right);
datagrid.Dock = (DockStyle.Top);
AdjustDatagridHeight();
AdjustDatagridWidth();
datagrid.RowHeadersVisible = false;
datagrid.AutoResizeColumnHeadersHeight();
}
Приведенный выше код вызывается после получения новой сетки данных как таковой:
datagrid = file.returnDatagrid(mouse, experiment);
ConfigureDatagrid();
Панель передается из Winform в класс сетки данных.