你对每一列都帮定,不许要得列不要帮定在datagrid上

解决方案 »

  1.   

    怎么绑定到具体的列阿,不是只能绑定到dataset或datatable上吗?
      

  2.   

    你可以定制TableType而不用默认的,如下一个参考:
    public void SetListData(DataView dvw)
    {
    tableStyle = new DataGridTableStyle();
    tableStyle.MappingName =dvw.Table.TableName;
    int numCols = dvw.Table.Columns.Count;
    DataGridColumnStyle textColumn;
    for (int i=0;i<dvw.Table.Columns.Count;i++)
    {
    if (dvw.Table.Columns[i].DataType==System.Type.GetType("System.DateTime"))
    {
    textColumn = new ColumnStyle.TimePickerColumnStyle();
    }
    else
    {
    textColumn = new ColumnStyle.TextColumnStyle();
    }
    textColumn.NullText="";
    textColumn.HeaderText = dvw.Table.Columns[i].Caption;
    textColumn.MappingName = dvw.Table.Columns[i].ColumnName;
    tableStyle.GridColumnStyles.Add(textColumn);
    } tableStyle.AllowSorting=false;
    tableStyle.RowHeadersVisible=false;
    this.TableStyles.Clear();
    this.TableStyles.Add(tableStyle);
    this.BeginInit();
    this.SetDataBinding(dvw,null);
    this.m_CurMgr = (CurrencyManager)BindingContext[this.DataSource,this.DataMember]; 
    this.EndInit();
    dvw.AllowNew=false;
    dvw.AllowDelete=true;
    dvw.AllowEdit=true;
    m_ListDataView=dvw;
    }
    发然在做循环的时间你可用个体的一个列来做不只显示你给定的列而不是所有的列,也可以把列的宽设成0而不显示出来.不知道是不是你想要的.我只是一个对考.
      

  3.   

    方法1、select选取的时候就不包含不显示的列
    方法2、去掉自动生成列,选取需要显示的列
    方法3、把选中但不需要显示的列的visible置为false
      

  4.   

    不好意思,看成asp.net的了,方法2不能用
      

  5.   

    用dataView可以实现,dataView是dataSet的虚表,可以自己定义的,然后绑定到dataView上就行了
      

  6.   

    设置TableStyle属性, 增加一个TableStyle, 其MapName属性为DataTable名, DataColumnStyle属性里增加几个列风格, 列的MapName属性设为要显示的列名, HeadText可以是要显示的列名, 如此设置即可.如下示例:
    this.dataGridTableStyle1 = new System.Windows.Forms.DataGridTableStyle();
    this.dataGridTextBoxColumn1 = new System.Windows.Forms.DataGridTextBoxColumn(); this.dataGridTableStyle1.DataGrid = this.dataGrid1;
    this.dataGridTableStyle1.GridColumnStyles.AddRange(new System.Windows.Forms.DataGridColumnStyle[] {this.dataGridTextBoxColumn1});
    this.dataGridTableStyle1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
    this.dataGridTableStyle1.MappingName = "";
    // 
    // dataGridTextBoxColumn1
    // 
    this.dataGridTextBoxColumn1.Format = "";
    this.dataGridTextBoxColumn1.FormatInfo = null;
    this.dataGridTextBoxColumn1.HeaderText = "姓名";
    this.dataGridTextBoxColumn1.MappingName = "Name";
    this.dataGridTextBoxColumn1.Width = 75;