将控件添加到绑定到DataTable的DataGridView

时间:2014-01-14 09:28:39

标签: c# winforms datagridview datatable

我正在开发一个WinForm应用。在我的应用程序中,有一个DataGridView控件绑定到一个DataTable对象。现在,我想在其中的一个特定列中显示用户ProgressBar,但我想仅使用DataTable对象执行此操作。我试过这个,但似乎没什么作用

            dataGridView1.DataSource = dataTable;

            DataColumn dc = new DataColumn("string", typeof(string));
            DataColumn dc2 = new DataColumn("Progress", typeof(ProgressBar));
            dataTable.Columns.Add(dc);
            dataTable.Columns.Add(dc2);

            DataRow dr = dataTable.NewRow();
            dr[0] = 1;
            ProgressBar p = new ProgressBar();
            p.Value = 35;
            dr[1] = p;
            dataTable.Rows.Add(dr);

也许我在做什么是错的。还有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:0)

请尝试以下代码:

DataTable _table = (dataGridView1.DataSource as DataTable);

DataColumn dc = new DataColumn("string", typeof(string));
DataColumn dc2 = new DataColumn("Progress", typeof(ProgressBar));
_table.Columns.Add(dc);
_table.Columns.Add(dc2);

DataRow dr = _table.NewRow();
dr["string"] = 1;
ProgressBar p = new ProgressBar();
p.Value = 35;
dr["Progress"] = p;

_table.Rows.Add(dr);

使用ColumnName instate使用ColumnIndex在DataRow中插入值。

请检查this link以在DGV单元格中创建ProgressBar