如何以编程方式定义 datagridview 中的列?
Posted
技术标签:
【中文标题】如何以编程方式定义 datagridview 中的列?【英文标题】:How to define columns in datagridview programmatically? 【发布时间】:2017-03-06 22:42:47 【问题描述】:我正在制作 Windows 应用程序
我添加了 1 个按钮和 1 个数据网格视图。
当点击按钮时,数据显示在 DB 中的 datagridview 中。
还有这一步,我有个问题。
我想像这样以编程方式定义 DataGridView 列
-
第一列 = 复选框列
第二列 = 进程列(我要在这里绑定数据)
第三列 = 进度条列(我会制作此列)
SQL 查询如下
SELECT COUNT(*) as Process from Sales.SalesOrderDetail
UNION
SELECT COUNT(*) as Process from Purchasing.ProductVendor
UNION
SELECT COUNT(*) as Process from Person.Address
UNION
SELECT COUNT(*) as Process from Production.WorkOrder
而按钮点击事件是这样的
private void btnStart_Click(object sender, EventArgs e)
DataSet ds = new DataSet();
DataTable dt = new DataTable();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["AdvConn"].ConnectionString);
SqlCommand cmd = new SqlCommand("UP_SelectTableCount", conn);
cmd.CommandType = CommandType.StoredProcedure;
try
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
catch
finally
conn.Close();
dt = ds.Tables[0];
metroGrid2.DataSource = dt;
如何添加或修复我的代码?请帮帮我
谢谢。
【问题讨论】:
使用dataGridView1.Columns.Add
(colname)
谢谢新手。是的,我已经知道如何使用它了。但我想更具体一点
【参考方案1】:
将数据添加到 datagridview 后,您可以编写一个简单的函数来添加这样的新列
private void AddNewColumns()
metroGrid2.Columns.Add("newColumnName", "Column Name in Text");
//To add values to the column you should run a foreach loop
foreach (DataGridViewRow row in metroGrid2.Rows)
if (row.Cells[1].Value.ToString()=="1") //Some condition or value
row.Cells[2].Value = "50%";
这只是一个关于添加列的想法,而不是关于添加进度条的想法。但我相信这可能会对您有所帮助,因为您主要关心的是向 DGV 添加一个新列。希望这会有所帮助
对于添加进度条列Populating a DataGridView with Text and ProgressBars 可能会对您有所帮助
【讨论】:
谢谢 Mohit Shrivastava。我了解如何使用它。所以我会试试看。我也感谢您关于进度条的链接! 很乐意提供帮助。快乐编码。 :)以上是关于如何以编程方式定义 datagridview 中的列?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 DataGridView 组合框添加到绑定的 DataGridView 数据源(以编程方式)
以编程方式选择 DataGridView 中的整行(不使用 ...Rows[].Selected)
以编程方式将新列添加到 DataGridView(填充有 DataTable 的 DataGridview)