datagridview是数据源绑定后,怎么设置datagridview显示列的类型?如DataGridViewCheckBoxColumn/DataGridViewComboBoxCell等。
            DataTable tb = new DataTable("tb");
            tb.Columns.Add(new DataColumn("col1", typeof(string)));
            tb.Columns.Add(new DataColumn("col2", typeof(DateTime)));
            tb.Columns.Add(new DataColumn("col3", typeof(int)));
            tb.Columns.Add(new DataColumn("col4", typeof(string)));
            //tb.Columns.Add(new DataColumn("col5", typeof(Boolean)));  
            tb.Rows.Add("111", DateTime.Now.ToString(), "222", "333");
            //DataGridView Dgv;
            DataView dv = new System.Data.DataView(tb);
            BindingSource bs = new BindingSource();
            bs.DataSource = dv;
            Dgv.DataSource = bs;
            //1,怎么让DataGridView 的col1列为 DataGridViewCheckBoxColumn类型,col4列为DataGridViewComboBoxCell类型,怎么设置它的HeaderText?            //2,在DataGridView绑定数据之前,给DataGridView添加列 col1,为何显示结果是有2个"col1"列,数据源不会先查找DataGridView已有的同名列,然后使用这个同名列(Dephi是这样处理的);
            DataGridViewColumn dgvCheckBox = new DataGridViewCheckBoxColumn();
            dgvCheckBox.Name = "col1";
            Dgv.Columns.Add(dgvCheckBox);3. 如果是绑定数据源,非手动载入数据。DataGridView 列的类型很不好控制?怎么才能做到灵活呢,网上说使用模板列System.Web.UI.ITemplate,不知道怎么使用,winfrm中没得模板列?谢谢

解决方案 »

  1.   

    设定方法:
    1. 在属性页上的Add Column中设置
    2. 通过程序设置,先new一个DataGridViewCheckBoxColumn对象,然后加入DataGridView里面。2种方法都可以
      

  2.   

    删除原列,添加DataGridViewCheckBoxColumn
    dagagridview中可直接设置单元格属性
      

  3.   


        DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
        {
            column.HeaderText = ColumnName.OutOfOffice.ToString();
            column.Name = ColumnName.OutOfOffice.ToString();
            column.AutoSizeMode = 
                DataGridViewAutoSizeColumnMode.DisplayedCells;
            column.FlatStyle = FlatStyle.Standard;
            column.ThreeState = true;
            column.CellTemplate = new DataGridViewCheckBoxCell();
            column.CellTemplate.Style.BackColor = Color.Beige;
        }    DataGridView1.Columns.Insert(0, column);