我在 VS2008 中使用的 datagridview 元素有一些问题。这个 DataGridView 实际上是 TabControl 元素中的一个选项卡。
我给了它 5 个列,这些列需要用我制作的服装对象中的元素填充。
它基本上是一个小型库应用程序,其中包含一个主类和几个派生自它的类。它们都有一个 ToString() 方法,该方法将数据表示为一串关键字,其中包含我填充 datagridview 所需的值。
我只需要前 5 个,有些对象最多有 12 个关键字。目前,每当我添加一个对象时,datagrid 不会自行填充,而是添加与特定对象具有的关键字数量相等的列数量。
我目前正在做的是:
public void libDataGrid_Click(object sender, EventArgs e)
{
if(this.manager.Lib.LibList[0] != null)
{
libDataGrid.DataSource = this.manager.Lib.LibList;
libDataGrid.Refresh();
}
}
this.manager.Lib.LibList
返回和 ArrayList,其中存储了所有对象。ArrayList 可以包含所有派生类的元素,但由于它们都是连接的,因此字符串表示将始终包含填充网格所需的元素。
我不知道如何只过滤前五个并且他们将它们放入正确的列中。
还有一件事。目前我只能通过单击来刷新 DataGridView。当我切换到 Tabcontrol 上的特定选项卡时,它应该会打开,我的意思是。
我尝试为 SelectedIndexChanged 添加一个参数,但这实际上并没有做任何事情......或者至少,它似乎没有做任何事情。
我的意思是我注释掉了上面的代码并添加了这个:
public void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
libDataGrid.DataSource = this.manager.Lib.LibList;
libDataGrid.Refresh();
}
每次更改选项卡时都会刷新它,无论是哪一个。我不得不删除 if 语句,因为它给了我一个例外。可能是因为初始化时未设置 ArrayList 的长度。