如何设置在windows窗体中的datagrid的标题,并确定每一列队应的字段
主 题: 如何设置在windows窗体中的datagrid的标题,并确定每一列队应的字段?
作 者: huang_sir (山)
等 级: ^
信 誉 值: 100
所属论坛: .NET技术 C#
问题点数: 20
回复次数: 15
发表时间: 2003-12-1 17:08:08
说明一下不是在web窗体中的控件,windows窗体中的datagrid没有columns属性,不知道如何设置,请教
回复人: huang_sir(山) ( 一级(初级)) 信誉:100 2003-12-1 17:17:45 得分:0
online
回复人: citymeteor(流星) ( 三级(初级)) 信誉:99 2003-12-1 17:22:17 得分:0
datagrid.tablestyles属性
回复人: brightheroes(闭关) ( 一星(中级)) 信誉:100 2003-12-1 17:27:08 得分:0
private void setDataGridTableStyle()
{
System.Windows.Forms.DataGridTableStyle dts = new DataGridTableStyle();
dts.AllowSorting = false;
dts.MappingName = this.dt.TableName;
dts.RowHeadersVisible = false;
DataGridTextBoxColumn dtc;
dtc = new DataGridTextBoxColumn();
dtc.Format = "";
dtc.MappingName = "ID";
dtc.HeaderText = "ID";
dtc.NullText = "";
dtc.Width = 0;
dts.GridColumnStyles.Add(dtc);
dtc = new DataGridTextBoxColumn();
dtc.Format = "";
dtc.MappingName = "Name";
dtc.HeaderText = "名称";
dtc.NullText = "";
dtc.Width = 125;
dts.GridColumnStyles.Add(dtc);
dtc = new DataGridTextBoxColumn();
dtc.Format = "";
dtc.MappingName = "master";
dtc.HeaderText = "负责人";
dtc.NullText = "";
dtc.Width = 125;
dts.GridColumnStyles.Add(dtc);
dtc = new DataGridTextBoxColumn();
dtc.Format = "";
dtc.MappingName = "description";
dtc.HeaderText = "描述";
dtc.NullText = "";
dtc.Width = 180;
dts.GridColumnStyles.Add(dtc);
this.dgMain.TableStyles.Clear();
this.dgMain.TableStyles.Add(dts);
回复人: brightheroes(闭关) ( 一星(中级)) 信誉:100 2003-12-1 17:27:53 得分:0
dt是你的DataTable
回复人: huang_sir(山) ( 一级(初级)) 信誉:100 2003-12-1 17:29:42 得分:0
可否详细说一下
回复人: huang_sir(山) ( 一级(初级)) 信誉:100 2003-12-1 17:37:57 得分:0
在设计界面下看不到阿
回复人: huang_sir(山) ( 一级(初级)) 信誉:100 2003-12-1 17:57:54 得分:0
请求答复
回复人: liusuccess(减肥成功) ( 二级(初级)) 信誉:95 2003-12-1 18:05:35 得分:0
style=new DataGridTableStyle();
style.MappingName="Customers";
for (int i=0;i<=5;i++)
{
DataGridTextBoxColumn col=new DataGridTextBoxColumn();
col.MappingName=ds.Tables["Customers"].Columns[i].ToString();
//你可以把下面这句代码改成="客户名称"之类的中文标题
col.HeaderText=ds.Tables["Customers"].Columns[i].ToString();
style.GridColumnStyles.Add(col);
}
dataGrid1.TableStyles.Add(style);
回复人: wildhope(沐秋) ( 一级(初级)) 信誉:100 2003-12-1 19:44:51 得分:0
正好我也在寻求这个问题的答案,刚才参看了一下brightheroes(闭关) 的代码,又摸索着使用DataGridStyle集合编辑器(在DataGrid属性窗口中点击TableStyles集合按钮可得)试着在设计阶段为DataGrid设置列标题,取得了部分成功,在这里我就现学现卖根大家讨论一下。首先如果DataGrid的DataSource设置为DataSet的时候,可以点击[DataGridStyle集合编辑器]中的添加按钮添加dts(DataGridTableStyles),在其MappingName属性下拉框中选择相应的要绑定的数据表myDataTable.然后点击dts的GridColumnStyles集合按钮进入[GridColumnStyles集合编辑器],添加按钮小黑箭头可向GridColumnStyles集合中选择添加dtc(DataGridTextBoxColumn),然后在dtc的属性窗口中修改MappingName和HeaderText即可。
不过我也有没解决的问题,如果DataSource是DataTable的时候,就不会设置了。我试验着按上面的方法设置好DataGrid后,将DataGrid的DataSource属性修改成相对应的DataTable 结果是可行的,可是比如原先设置的DataGrid的自动套用格式就无法使用了。我手头的资料不多,我觉得DataGrid应该有个设置当前表的dts的属性,不知道对不对,大家继续探讨一下。
回复人: wildhope(沐秋) ( 一级(初级)) 信誉:100 2003-12-2 9:10:12 得分:0
我知道了,数据源为DataTable的DataGrid等效为数据源为DataSet 而DataMember为对应的同一个表的设置。所以设置只显示单个DataTable也用DataSet作数剧源,这样在设计阶段的设置就都统一到数据源为DataSet的这种情况。
我还有个问题,如何才能设置列标题字体居中,我找不到,请高手给指点一下
回复人: huang_sir(山) ( 一级(初级)) 信誉:100 2003-12-2 9:10:55 得分:0
继续阿
回复人: wildhope(沐秋) ( 一级(初级)) 信誉:100 2003-12-03 09:12:00 得分:0
ding
回复人: brightheroes(闭关) ( 一星(中级)) 信誉:100 2003-12-03 09:31:00 得分:0
居中如下
dgtbc.Alignment = System.Windows.Forms.HorizontalAlignment.Center;
回复人: brightheroes(闭关) ( 一星(中级)) 信誉:100 2003-12-03 09:49:00 得分:0
dtc.Alignment = System.Windows.Forms.HorizontalAlignment.Center;
回复人: wildhope(沐秋) ( 一级(初级)) 信誉:100 2003-12-03 09:56:00 得分:0
谢谢两位,但是你们所说的是列值在DataGrid中居中,我是想问如何让标题(比如姓名、年龄等)居中。