我正在开发一个在多个选项卡控件上包含多个DataGridViews的程序。我的DataGridViews在运行时为它们做了很多初始格式化。例如,第0行和第1行是我的第一组“标题”,它们是具有颜色和字体格式的只读单元格。第2行和第3行用于基于输入的值进行颜色编码的数据输入。然后,对于行4,5,6和7重复此行组织,然后依此类推。
我不想重复所有其他DataGridViews的所有设置和格式化代码。有没有办法创建一个DataGridViews数组,以便我可以循环设置和格式化代码?
DataGridView[] subFrames = new DataGridView[16];
以上编译,但如何使用它?我不能在我的表单subFrame [0]上命名一个DataGridView控件。我是否必须在代码中创建控件并定义放置等以执行此操作?或者还有另一种方式吗?
答案 0 :(得分:1)
如果您动态生成DataGridView
,那么您可以准确使用您建议的方法。表单上的控件实例是C#中的对象,就像任何其他对象一样,因此您可以在数组中保存对这些对象的引用。
不太了解你的代码,这是一个人为的例子。但请考虑这种模式:
public class Form1
{
private DataGridView[] subFrames = new DataGridView[16];
// other code
private void BuildGrids()
{
this.DataGridView1 = BuildFirstGrid();
subFrames[0] = this.DataGridView1;
// continue for the rest of the grids
}
private void StyleGrids()
{
foreach (var grid in subFrames)
ApplyStyling(grid);
}
}
您要针对此特定问题进行整合的代码将位于ApplyStyling()
中,基本上会按照您的描述转换每个网格。