怎么隐藏DataGrid中的某一列后我还能获取到该列的值,例如:隐藏要填充表中的id列,但我还能获取到隐藏列的值注明:是WinFrom C/S 结构多谢各位,最好提供代码

解决方案 »

  1.   

    你可以这样来做:
    1。把你要隐藏的列的列宽设置为0,就看不见了,但是实际还是再的
    2。一下代码给你参考
    DataGridTableStyle dtstyle = new DataGridTableStyle();
    DataGridTextBoxColumn aColumnTextColumn;
    dtstyle.MappingName= dt.Tables[0].TableName;
    int numCols;
    dataGrid1.TableStyles.Clear();

    numCols = dt.Tables[0].Columns.Count;
    for (int i = 0;i<numCols;i++) 
    {
    aColumnTextColumn = new DataGridTextBoxColumn();
    aColumnTextColumn.HeaderText = dt.Tables[0].Columns[i].ColumnName;
                        aColumnTextColumn.MappingName = dt.Tables[0].Columns[i].ColumnName;
    aColumnTextColumn.TextBox.AutoSize = true;
    dtstyle.PreferredColumnWidth = aColumnTextColumn.TextBox.Width; if(1 == i)
    {
    aColumnTextColumn.Width = 350;
    }
    else if ( dt.Tables[0].Columns[i].ColumnName == "flag" || dt.Tables[0].Columns[i].ColumnName == "Name" || dt.Tables[0].Columns[i].ColumnName == "ID" || dt.Tables[0].Columns[i].ColumnName == "Map") 
    {
    aColumnTextColumn.Width = 0;
    }
    else
    {
    aColumnTextColumn.Width = 50;
    }

    //aColumnTextColumn.Width = 50;
    dtstyle.GridColumnStyles.Add(aColumnTextColumn);
    }

    dataGrid1.TableStyles.Add(dtstyle);
      

  2.   

    mike1983(魔兽,属于我的世界!!)
    多谢!!!