C# WinForm中DataGrid列设置(列宽/列标题等)

写winForm的程序,难免要用DataGrid,自然也就需要设置列格式啊,标题之类的!但是经常列标题设置后没反应,好恶心!
这几天做了个程序,自己研究了一下,主要有有一个地方要注意!那就是下面代码中的“红色”字部分!以下代码不需要在控件上做任何设置,照着写就能搞定!以前好象还有人花5000分买这个问题的解决答案的,哎,怎么我没碰上啊!

private void frmLog_Load(object sender, System.EventArgs e)
{
//设置DataGrid的列宽
InitDataGridColumnHeader();

//GetResult();
}

private void InitDataGridColumnHeader()
{
DataGridTableStyle dts
=new DataGridTableStyle();

//注意:必须加上这一句,否则自定义列格式无法使用
dts.MappingName="Table";

hrgLog.TableStyles.Add(dts);

hrgLog.TableStyles[
0].GridColumnStyles.Clear();

//========================设置表头栏位===========================
DataGridTableStyle dtsLog = new DataGridTableStyle();

DataGridTextBoxColumn colID
= new DataGridTextBoxColumn();
colID.Width
=80;
colID.HeaderText
= "记录序号";
colID.MappingName
= "ID";

hrgLog.TableStyles[
0].GridColumnStyles.Add(colID);

DataGridTextBoxColumn colLog
= new DataGridTextBoxColumn();
colLog.Width
=200;
colLog.HeaderText
= "日志内容";
colLog.MappingName
= "LogMessage";

hrgLog.TableStyles[
0].GridColumnStyles.Add(colLog);


DataGridTextBoxColumn colTime
= new DataGridTextBoxColumn();
colTime.Width
=100;
colTime.HeaderText
= "记录时间";
colTime.MappingName
= "LogTime";

hrgLog.TableStyles[
0].GridColumnStyles.Add(colTime);

DataGridTextBoxColumn colCatalog
= new DataGridTextBoxColumn();
colCatalog.Width
=100;
colCatalog.HeaderText
= "日志类别";
colCatalog.MappingName
= "LogCatalog";
hrgLog.TableStyles[
0].GridColumnStyles.Add(colCatalog);
}

 

posted on 2010-11-22 13:16  peter_zhang  阅读(4307)  评论(0编辑  收藏  举报