通过代码如何控制?
能否允许用户用鼠标拖动列顺序?

解决方案 »

  1.   

    可以通过修改DATAGRID的tablestyle调整列顺序。
      

  2.   

    例子:
    说明:DataGrid的TableStyles是一个DataGridTableStyle数组,
    每一个DataGridTableStyle代表一种样式,它包含每个列的绑定字段和样式,可代码调整之
    /// <summary>
    /// 设置DataGrid列表头和绑定字段
    /// </summary>
    /// <param name="dg"></param>
    /// <param name="mColumnsName">字段名(数组)</param>
    /// <param name="mColumnsHeader">对应的中文名(数组)</param>
    /// <param name="mColumnsWidth">列的宽度(数组)</param>
    public static void InitDataGridHeader(DataGrid dg,string[] mColumnsName,string[] mColumnsHeader,float[] mColumnsWidth)
    {

                 dg.TableStyles.Clear();
    DataGridTableStyle myStyle = new DataGridTableStyle();
    dg.TableStyles.AddRange(new DataGridTableStyle[]{myStyle});
    myStyle.DataGrid = dg; for(int i=0;i<mColumnsName.Length;i++)
    {
    DataGridTextBoxColumn tmpColumn = new DataGridTextBoxColumn();
    tmpColumn.Format = "";
    tmpColumn.FormatInfo = null;
    tmpColumn.HeaderText = mColumnsHeader[i];
    tmpColumn.MappingName = mColumnsName[i];
    tmpColumn.Width  =  10.5F;
    myStyle.GridColumnStyles.Add(tmpColumn);
    }//end of for(int i=0;i<mColumnsName.Length;i++)

    myStyle.HeaderForeColor = SystemColors.ControlText;
    myStyle.MappingName = dg.DataMember;
    myStyle.AlternatingBackColor = Color.Azure;//Color.SeaShell;
    myStyle.GridLineStyle = DataGridLineStyle.Solid;
    myStyle.GridLineColor = SystemColors.Control;
    myStyle.HeaderBackColor = SystemColors.ControlLight;
    myStyle.HeaderFont = new Font(Common.MySettings.myFontName,9F,FontStyle.Bold, GraphicsUnit.Point, ((System.Byte)(134)));
    //myStyle.SelectionBackColor = SystemColors.Info;
        //myStyle.SelectionForeColor = SystemColors.InfoText;
                
    dg.AllowSorting = canSort;
    dg.TableStyles[0].AllowSorting = canSort;
    dg.ReadOnly = true;
    //dg.CaptionVisible = false;
                
    }
      

  3.   

    通过鼠标拖动动态实现列的顺序,无论winform还是webform下的DataGrid,都可以实现,
    winform的上面已经说了,
    webform的这里有例子http://dotnet.aspx.cc/ShowDetail.aspx?id=00C78024-5C08-4F3F-BCA8-AB3C0B330A12
      

  4.   

    我是要在已经定义号的DataGridTableStyle中插入新的列,而不是只能增加到最后
      

  5.   

    try
    拖放 DataGrid 列
    http://www.microsoft.com/china/MSDN/library/netFramework/netframework/VCSdragdrop_datagrid.mspx