DataGrid控件如何设置列标题居中显示

carolbaby 2003-10-20 01:24:06
windows 应用程序中的DataGrid控件如何设置列标题居中显示?
...全文
135 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
song0311 2003-12-30
  • 打赏
  • 举报
回复
直接在属性中设置就可以了,不用写代码的。加我的MSN,我教你
hz_syk@hotmail.com
cqnimin 2003-11-24
  • 打赏
  • 举报
回复
上面的代码是我自己写的一个datagrid中考下来的。
里面还有其他的一些功能,所以有可能不能运行:)
请楼主自己该一下吧。
cqnimin 2003-11-24
  • 打赏
  • 举报
回复
别人是说的列标题
代码如下:
public class MyDataGrid :DataGrid
{
private HorizontalAlignment haColumnTextPosition = HorizontalAlignment.Left;
private int tableStyleIndex = 0;
public MyDataGrid()
{
}
[Browsable(true)]
public HorizontalAlignment ColumnTextPostion
{
get{return(haColumnTextPosition);}
set{haColumnTextPosition = value;SetColumnText();}
}

private void SetColumnText()
{
try
{
if(this.TableStyles.Count != 0)
{
for(int i=0;i<this.TableStyles[tableStyleIndex].GridColumnStyles.Count;i++)
{
object obj = this.TableStyles[tableStyleIndex].GridColumnStyles[i];
int width = Convert.ToInt32(obj.GetType().InvokeMember("Width",BindingFlags.GetProperty,null,obj,new object[]{}));
string Text = Convert.ToString(obj.GetType().InvokeMember("HeaderText",BindingFlags.GetProperty,null,obj,new object[]{})).Trim();
int position = 0;
switch (ColumnTextPostion)
{
case HorizontalAlignment.Center: position = GetTextPosition(Text,width); break;
case HorizontalAlignment.Right: position = GetTextPosition(Text,width)*2-2; break;
default:
break;
}
for(int o = 0;o<position;o++)
{
Text = " "+Text;
}
obj.GetType().InvokeMember("HeaderText",BindingFlags.SetProperty,null,obj,new object[]{Text});
}
}
}
catch(Exception err)
{
MessageBox.Show(err.Message);
}
}

private int GetTextPosition(string Text,int columnWidth)
{
int perWidth = Convert.ToInt32(Graphics.FromHwnd(this.Handle).MeasureString( "ABCDEFGHIJKLMNOPQRSTUVWXYZ",this.Font).Width/26.0);
int len = System.Text.Encoding.Default.GetByteCount(Text);
return((columnWidth/perWidth-len)/2-1);
}
protected override void OnMouseUp(MouseEventArgs e)
{
base.OnMouseUp(e);
SetColumnText();
}
}
realknight 2003-11-24
  • 打赏
  • 举报
回复
很简单,如下:
属性生成器—》格式—》页眉—》在右面的面板下部有对齐方式—》在水平对齐的下拉框中选居中就行了
simanh 2003-11-23
  • 打赏
  • 举报
回复
楼上的都说了^^!
AguBoy 2003-11-23
  • 打赏
  • 举报
回复
在页面(html)设置:
1,设定列标头居中
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
2,设定烈数据居中
<ItemStyle HorizontalAlign="Center"></ItemStyle>
当然,你还可以设置为left(居左)或right(居右)
reaperwu 2003-11-21
  • 打赏
  • 举报
回复
<ItemStyle HorizontalAlign="Center" Height="25px"></ItemStyle>
<HeaderStyle HorizontalAlign="Center" Height="40px" BackColor="#C6D7EF"></HeaderStyle>
wswc3110 2003-11-21
  • 打赏
  • 举报
回复
DataGridTableStyle TS1= new DataGridTableStyle();
TS1.MappingName=Goods.GoodsOut_table;
DataGridTextBoxColumn Txtcol;

Txtcol =new DataGridTextBoxColumn() ;
Txtcol.HeaderText="你好";
Txtcol.MappingName="id";
TS1.GridColumnStyles.Add(Txtcol);

//
Grid.TableStyles.Add(TS1);
这样行吗?用的样式!
carolbaby 2003-11-19
  • 打赏
  • 举报
回复
vc里面可以通过设置表格的扩展属性来解决,C#没有找到对应的选项,问了公司的很多人,都没有答案。我也觉得这个问题很菜,可是真的是找不到答案啊,能怪我吗?
carolbaby 2003-11-19
  • 打赏
  • 举报
回复
windows 应用程序!!!
wswc3110 2003-11-18
  • 打赏
  • 举报
回复
把样式加入DataGrid中,看看帮助吧!
cqnimin 2003-11-18
  • 打赏
  • 举报
回复
呵呵,老兄自己写吧,
我就是自己写的一个。
算它的长度,然后在前面加空格。
chestnuts 2003-11-18
  • 打赏
  • 举报
回复
哎???
怪不得很多人说csdn菜鸟很多!!
这种看书就能解决的问题以后最好不要在csdn上出现!!
jeall 2003-11-18
  • 打赏
  • 举报
回复
两个//间的内容即可!
<asp:TemplateColumn HeaderText="状态">

//<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>//

<ItemTemplate>
<asp:Label runat="server" Text='<%# getState(DataBinder.Eval(Container, "DataItem.isanswer")) %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
carolbaby 2003-11-17
  • 打赏
  • 举报
回复
?
carolbaby 2003-10-21
  • 打赏
  • 举报
回复
难道这个问题这么难?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧