如何在winforms中绑定数据后在datagridview中手动设置每列的索引?

时间:2011-08-11 02:17:28

标签: c# winforms datagridview dataset indexing

添加动态数据的代码

getdata()  
{  
SqlConnection con = new SqlConnection("Data source=XXXXX;Initial catalog=dummy;integrated security=true");  
            DataTable dt = new DataTable();  
            DataColumn col = new DataColumn("Title", typeof(System.String));  
            dt.Columns.Add(col);  
            DataRow row = dt.NewRow();  
            con.Open();  
            SqlCommand cmd = new SqlCommand("select  Title,Description from systemtray", con);  
            SqlDataReader dr;  
            dr = cmd.ExecuteReader();  
            while (dr.Read())  
            {  
              string s=dr["Title"].ToString()+Environment.NewLine+dr["Description"].ToString();    

                row["Title"]= s.Trim();  

                dt.Rows.Add(row["Title"]);  
            }  
            dataGridView1.DataSource = dt; 
}

然后我使用properties为datagrid添加了两个按钮。输出是:两个按钮显示在索引[0],[1],数据显示在最后一列,我需要显示索引处的数据[ 0]位置然后两个按钮。我可以手动设置索引。

2 个答案:

答案 0 :(得分:7)

要更改列在DataGridView中的位置,请将DataGridViewColumn的DisplayIndex属性设置为所需的值:

dataGridView1.Columns[2].DisplayIndex = 0;

此代码将第三个DGV列更改为第一个列位置。

请注意,您无需更改DataTable中的列,并且更改DataGridView中列的顺序不会影响DataTable的架构。

答案 1 :(得分:2)

从表单设计器中添加新的DataGridViewTextBoxColumn并将其移至最顶部位置或您想要显示此列的任何位置,然后在此DataGridViewTextBoxColumnDataPropertyName的属性中到你的列的名称,从你的代码中,我可以看到标题,就是它,编译,运行它应该在按钮列之前显示文本列...我附上了截图对你而言,我希望它能解决你的问题...

posit