CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

怎样设置DataGrid中某一列的列宽呢?

楼主skyhaha(内存严重不足)2005-02-28 15:40:44 在 .NET技术 / VB.NET 提问

比如,现在有三列,三列宽度不一样100,200,300,怎么设置呢?      
  还有一个问题就是不叫第二列在DataGrid中显示出来,应该怎样做呢? 问题点数:20、回复次数:12Top

1 楼skyhaha(内存严重不足)回复于 2005-02-28 15:48:17 得分 0

Dim   dsxml   As   New   DataSet  
                  Dim   XmlFilePath   As   String  
   
                  XmlFilePath   =   System.IO.Path.GetFullPath("../xsxml.xml")  
                  dsxml.ReadXml(XmlFilePath)  
   
   
                  dsxml.Tables("item").Columns.Item(0).ColumnName   =   "文章标题"  
                  dsxml.Tables("item").Columns.Item(3).ColumnName   =   "加入时间"  
                  With   DataGridXml  
                          .DataSource   =   dsxml.Tables("item").DefaultView  
                  End   With  
   
  DataGridTableStyle应该怎么写呢?谢谢啊Top

2 楼dated(懵懂)回复于 2005-02-28 15:48:58 得分 2

先关掉datagrid的autoGerenerateColumns属性,再用属性生成器设置三个绑定列或两个随你,绑定数据源后分别设置宽度就成了Top

3 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-02-28 16:02:23 得分 5

Private   Function   gettablestyle(ByVal   tbl   As   DataTable)   As   DataGridTableStyle  
                  Dim   style1   As   New   DataGridTableStyle()  
                  style1.MappingName   =   tbl.TableName  
                  style1.RowHeaderWidth   =   15  
                  Dim   colnumber   As   Integer   =   tbl.Columns.Count  
                  Dim   i   As   Integer   =   0  
                  Dim   col1   As   DataGridTextBoxColumn  
                  Dim   str   As   String   =   "序号,材料编号,材料封度,材料名称,单位,用料数量,欠料数量,买料数量,明细id"  
                  Dim   strcaption()   As   String  
                  strcaption   =   str.Split(",")  
                  While   i   <   colnumber  
                          col1   =   New   DataGridTextBoxColumn()  
                          col1.MappingName   =   tbl.Columns(i).ColumnName   '不想绑定哪一列就不要在这里加进去就是了。  
                          col1.HeaderText   =   strcaption(i)  
                          col1.NullText   =   ""  
                          If   i   =   0   Then  
                                  col1.Width   =   35  
                          End   If  
                          If   i   <   5   Then  
                                  col1.ReadOnly   =   True  
                          End   If  
                          If   i   =   8   Then  
                                  col1.Width   =   0   ’或者在这里设置宽度为0,也可以不显示这一列  
                          End   If  
                          style1.GridColumnStyles.Add(col1)  
                          i   =   i   +   1  
                  End   While  
   
                  Return   style1  
          End   FunctionTop

4 楼skyhaha(内存严重不足)回复于 2005-02-28 16:59:06 得分 0

Dim   dsxml   As   New   DataSet  
                  Dim   XmlFilePath   As   String  
   
                  XmlFilePath   =   System.IO.Path.GetFullPath("../xsxml.xml")  
                  dsxml.ReadXml(XmlFilePath)  
   
                  Dim   ts   As   New   DataGridTableStyle  
   
                  ts.MappingName   =   dsxml.Tables("item").TableName  
   
                  Dim   tc   As   New   DataGridTextBoxColumn  
                  With   tc  
                          .MappingName   =   dsxml.Tables("item").Columns.Item(0).ToString()  
                          .HeaderText   =   "文章标题"  
                          .Width   =   50  
                          .ReadOnly   =   True  
                  End   With  
                  ts.GridColumnStyles.Add(tc)  
   
                  Dim   asd   As   New   DataGridTextBoxColumn  
                  With   asd  
                          .MappingName   =   dsxml.Tables("item").Columns.Item(1).ToString()  
                          .HeaderText   =   "文章标题"  
                          .Width   =   50  
                          .ReadOnly   =   True  
                  End   With  
                  ts.GridColumnStyles.Add(asd)  
   
                  MsgBox(tc.MappingName   &   tc.Width   &   tc.HeaderText)  
   
                  With   DataGridXml  
                          .TableStyles.Clear()  
                          .TableStyles().Add(ts)  
                          '.DataSource   =   dsxml.Tables("item").DefaultView  
                  End   With  
  怎么在DataGrid中显示不出来呢?Top

5 楼aw511(点点星灯)回复于 2005-02-28 17:22:23 得分 2

1.设置DataGrid列的宽度  
        (DataGrid的列已经建好了)  
        右击DataGrid---->属性生成器--->格式--->(对象)中的"列"---->单击列名--->看到右边有个  
        宽度:(自己设置吧)  
   
  2.me.DataGrid1.Items(1).Visible=FalseTop

6 楼Night_Elf(风暴虫)回复于 2005-02-28 18:16:09 得分 0

使用DataTableStyle  
  :  
  MyDataGrid.DataSource   =   MyDataTable           '绑定数据源  
                  Dim   ts   As   New   DataGridTableStyle'定义表样式  
                  ts.MappingName   =   MyDataTable.TableName  
   
                  Dim   tc   As     DataGridTextBoxColumn  
  tc=new   DataGridTextBoxColumn‘定义列样式  
                  With   tc  
                          .MappingName   =   "a"‘对应数据库中的a字段  
                          .HeaderText   =   "A"'列标题  
                          .Width   =   50  
                          .NullText   =   ""  
                          .ReadOnly   =   True  
                  End   With  
                  ts.GridColumnStyles.Add(tc)  
   
  tc=new   DataGridTextBoxColumn  
                  With   colID  
                          .HeaderText   =   "B"  
                          .MappingName   =   "b"  
                          .NullText   =   ""  
                  End   With  
                  ts.GridColumnStyles.Add(tc)  
   
  tc=new   DataGridTextBoxColumn  
                  With   colID  
                          .HeaderText   =   "C"  
                          .MappingName   =   "c"  
                          .NullText   =   ""  
                  End   With  
                  ts.GridColumnStyles.Add(tc)  
   
  tc=new   DataGridTextBoxColumn  
                  With   colID  
                          .HeaderText   =   "D"  
                          .MappingName   =   "d"  
                          .NullText   =   ""  
          .width=0'长度为0则隐藏  
                  End   With  
                  ts.GridColumnStyles.Add(tc)  
   
                  MyDataGrid.TableStyles.Clear()  
                  MyDataGrid.TableStyles.Add(ts)  
  Top

7 楼skyhaha(内存严重不足)回复于 2005-02-28 18:44:24 得分 0

我的方法和你的一样啊,可是在DataGrid中表格显示不出来Top

8 楼zzmdegm(剑心)回复于 2005-02-28 18:48:53 得分 1

使用datagrid表样式,将相应的列样式的width设置为“你想要的值”Top

9 楼Night_Elf(风暴虫)回复于 2005-02-28 19:00:48 得分 0

to:skyhaha(觉悟)   ,怎么可能?贴出你的代码看看!Top

10 楼skyhaha(内存严重不足)回复于 2005-02-28 19:02:51 得分 0

Dim   dsxml   As   New   DataSet  
                  Dim   XmlFilePath   As   String  
   
                  XmlFilePath   =   System.IO.Path.GetFullPath("../xsxml.xml")  
                  dsxml.ReadXml(XmlFilePath)  
   
                  Dim   ts   As   New   DataGridTableStyle  
   
                  ts.MappingName   =   dsxml.Tables("item").TableName  
   
                  Dim   tc   As   New   DataGridTextBoxColumn  
                  With   tc  
                          .MappingName   =   dsxml.Tables("item").Columns.Item(0).ToString()  
                          .HeaderText   =   "文章标题"  
                          .Width   =   50  
                          .ReadOnly   =   True  
                  End   With  
                  ts.GridColumnStyles.Add(tc)  
   
                  Dim   asd   As   New   DataGridTextBoxColumn  
                  With   asd  
                          .MappingName   =   dsxml.Tables("item").Columns.Item(1).ToString()  
                          .HeaderText   =   "文章标题"  
                          .Width   =   50  
                          .ReadOnly   =   True  
                  End   With  
                  ts.GridColumnStyles.Add(asd)  
   
                  MsgBox(tc.MappingName   &   tc.Width   &   tc.HeaderText)  
   
                  With   DataGridXml  
                          .TableStyles.Clear()  
                          .TableStyles().Add(ts)  
                          '.DataSource   =   dsxml.Tables("item").DefaultView  
                  End   With  
  这是那段代码,我用MsgBox来输出表名、列标题和宽度,都可以显示出来,可是添加到DataGrid中,整个表格就显示不出来,帮我看看吧,谢谢啦Top

11 楼Night_Elf(风暴虫)回复于 2005-02-28 19:10:59 得分 10

修改,再试试:  
  Dim   dsxml   As   New   DataSet  
                  Dim   XmlFilePath   As   String  
   
                  XmlFilePath   =   System.IO.Path.GetFullPath("../xsxml.xml")  
                  dsxml.ReadXml(XmlFilePath)  
   
  DataGridXml.DataSource   =   dsxml.Tables("item").DefaultView  
   
                  Dim   ts   As   New   DataGridTableStyle  
   
                  ts.MappingName   =   dsxml.Tables("item").TableName  
   
                  Dim   tc   As   New   DataGridTextBoxColumn  
                  With   tc  
                          .MappingName   =   dsxml.Tables("item").Columns.Item(0).ToString()  
                          .HeaderText   =   "文章标题"  
                          .Width   =   50  
                          .ReadOnly   =   True  
                  End   With  
                  ts.GridColumnStyles.Add(tc)  
   
                  Dim   asd   As   New   DataGridTextBoxColumn  
                  With   asd  
                          .MappingName   =   dsxml.Tables("item").Columns.Item(1).ToString()  
                          .HeaderText   =   "文章标题"  
                          .Width   =   50  
                          .ReadOnly   =   True  
                  End   With  
                  ts.GridColumnStyles.Add(asd)  
   
   
                  With   DataGridXml  
                          .TableStyles.Clear()  
                          .TableStyles().Add(ts)  
                  End   With  
  Top

12 楼skyhaha(内存严重不足)回复于 2005-02-28 19:24:28 得分 0

晕,数据源的问题啊,哎,我想表都添加到DataGrid里面了,想就不用数据源了,结果.......  
  谢谢大哥啊。Top

相关问题

  • 如何设置datagrid的列宽?
  • datagrid的行高、列宽如何设置?
  • datagrid的列宽怎么设置?
  • datagrid 的列宽
  • DataGrid列宽问题
  • 怎么设置Excel列宽
  • 怎样设置datagrid每一列的列宽
  • 设置datagrid控件的每列列宽,怎么才能做到??
  • DataGrid子表如何设置列宽--在线等待
  • 怎样在datagrid里设置列宽,(c#,winform)

关键词

  • 属性
  • datagrid
  • dsxml
  • xmlfilepath
  • mappingname
  • tc
  • ts
  • datagridtextboxcolumn
  • gridcolumnstyles
  • datagridxml

得分解答快速导航

  • 帖主:skyhaha
  • dated
  • hamadou
  • aw511
  • zzmdegm
  • Night_Elf

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo