所以我正在尝试为排序算法创建一个可视化器。 目前正试图通过简单的插入排序来使其工作。 该程序生成许多10 x(10 * ToSort [i])的标签,应在所述插入排序的每一步之后移动。
所以这个方法:
private void RefreshPanel()
{
for (int i = 0; i < toSort.Length; i++)
{
Label label = (Label)activePanel.Controls["lblVis" + toSort[i]];
label.Top = ((10 * i) + i + 5);
}
}
在排序算法的每一步之后都会调用。当标签确实被移动时,一些标签会在算法完成之前失去颜色。 在此尝试中,标签由“lblVis”和标签代表的数字标识。
另一次尝试:
private void RefreshPanel()
{
LogArray();
for (int i = 0; i < toSort.Length; i++)
{
activePanel.Controls["lblVis" + i].Width = 10 * toSort[i];
}
}
在此示例中,标签再次由“lblVis”+创建时现有lblVis标签的数量标识。然后我尝试根据正在排序的数组中的值来改变它们的宽度。
然而,这些方法都不起作用。标签只是一个糟糕的Winform控件试图这样做吗?或者我错过了一些非常明显的东西?