正在更新datagridview表

本文关键字:datagridview 更新 | 更新日期: 2023-09-27 18:03:10

我是编程新手,很有趣!

现在我正在看DataGridView和arraylists。

在我的数组中,我有名字和地址等等

,通过点击一个按钮,我设置数据源为datagridview为我的数组列表,像这样:

    private void button1_Click(object sender, EventArgs e)
    {
        dataGridView1.DataSource = logik.kundekartotek.arrKunder;
    }

但是当我添加一些新的信息到我的数组列表,我需要更新datagridview..

但是我怎么做呢?

我找到了一个解决方案:

    private void button1_Click(object sender, EventArgs e)
    {
        dataGridView1.DataSource = null; 
        dataGridView1.DataSource = logik.kundekartotek.arrKunder;
    }

但这似乎不对…

正在更新datagridview表

试试这个:

private void button1_Click(object sender, EventArgs e)
{
    dataGridView1.DataSource = logik.kundekartotek.arrKunder;
    dataGridView1.EndEdit();
}
private void button2_Click(object sender, EventArgs e)
{
    dataGridView1.Refresh();
}

一种选择是自己将new row添加到DataGridView中。将new item加入到array中,你可以这样做,

  int i = dataGridView1.Rows.Add();//i is the index of the new row added
    dataGridView1.Rows[i].Cells[0].Value = val1;
    dataGridView1.Rows[i].Cells[1].Value = val2;

如果让我们假设,你的列valueDateTime的一个,你可以做

dataGridView1.Rows[i].Cells[1].ValueType = typeof(DateTime);

当你使用ArrayList作为你的DataSource,那么你所做的是更新显示信息的最佳方式然而有集合类型是更好的使用作为DataSource已被设计为支持双向数据绑定。

首先要看的是通用的BindingList<T>集合。在MSDN上有详细描述。

使用BindingList<T>而不是ArrayList,当您向列表添加新对象时(使用. add()方法),它们将自动出现在DataGridView中。

一旦你开始使用,你可能会想要更多的功能,如按列排序网格-浏览MSDN更多的例子是可能的。

(另一个提供高级功能的DataSource选项是DataTable,就像BindingList<T>一样,当你向DataTable添加一个项目时,它会出现在DataGridView中,但我建议使用列表,数据表要么将你绑定到特定的数据访问技术,要么强迫你跳过很多圈)。