datagrid控件能否调整列顺序? 通过代码如何控制?能否允许用户用鼠标拖动列顺序? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以通过修改DATAGRID的tablestyle调整列顺序。 例子:说明: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; } 通过鼠标拖动动态实现列的顺序,无论winform还是webform下的DataGrid,都可以实现,winform的上面已经说了,webform的这里有例子http://dotnet.aspx.cc/ShowDetail.aspx?id=00C78024-5C08-4F3F-BCA8-AB3C0B330A12 我是要在已经定义号的DataGridTableStyle中插入新的列,而不是只能增加到最后 try拖放 DataGrid 列http://www.microsoft.com/china/MSDN/library/netFramework/netframework/VCSdragdrop_datagrid.mspx C#中DataGridview中绑定小数的问题 如何测试这个方法?请高手帮忙? 在线等。。。急急急!!! 关于数据库设计性能 使用视图好还是多写信息到表里?? repeater串行 小妹求助:如何用C#的正则表达式(Regex)实现这样一个不很复杂的字符串匹配? text string经过md5后,如何与sql server 中的bin字段进行比较 C#应用中打包水晶报表要付费吗? DataList嵌套问题 求助,在Access中这条SQL语句怎么写? 幾個問題!高分請教! 关于单例模式的一个问题。
说明: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;
}
winform的上面已经说了,
webform的这里有例子http://dotnet.aspx.cc/ShowDetail.aspx?id=00C78024-5C08-4F3F-BCA8-AB3C0B330A12
拖放 DataGrid 列
http://www.microsoft.com/china/MSDN/library/netFramework/netframework/VCSdragdrop_datagrid.mspx