DataGrid子表如何设置列宽--在线等待

xmmy 2005-01-24 02:27:29
我做了个Datagrid的父子关系表,但子表中有些子段我不想显示出来,不知子表列宽该如何设置??

在线等待!!!
...全文
213 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
landlordh 2005-01-27
  • 打赏
  • 举报
回复
子表 的确不好控制,

可以试下用触发事件来更换 tablestyle

没有试过
LiloZhu 2005-01-26
  • 打赏
  • 举报
回复
不想顯示出來的列就在樣式表中將它的列 width=0
  • 打赏
  • 举报
回复
没做过。
AllenTing 2005-01-26
  • 打赏
  • 举报
回复
不懂,帮顶
xmmy 2005-01-26
  • 打赏
  • 举报
回复
谢谢各位,我先试试,试过后不管成功不成功我都给分.
programmer11 2005-01-25
  • 打赏
  • 举报
回复
顶者有分啊
Night_Elf 2005-01-25
  • 打赏
  • 举报
回复
见水如烟的Blog:
http://blog.csdn.net/lzmtw/archive/2004/07/19/45248.aspx
henrysap 2005-01-25
  • 打赏
  • 举报
回复
Datagrid 属性中有TabaStyles设置
在Collection中加入DataGridTableStyle
DataGridTableStyle里面选择MappingName加入表名字
然后再在GridColumeStyles里面加入你想显示的列和修改
各列的属性
cjxcjx 2005-01-25
  • 打赏
  • 举报
回复
up
Eddie005 2005-01-24
  • 打赏
  • 举报
回复
/// <summary>
/// 【方法01】:设置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)
{
if(mColumnsName.Length != mColumnsHeader.Length || mColumnsHeader.Length != mColumnsWidth.Length)
{
Common.ShowMsg("系统错误:输入参数不正确,请联系系统开发人员");
return;
}

bool canSort = dg.AllowSorting;

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 = mColumnsWidth[i]; 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)));

//dg.Font = Common.MySettings.myFont;
dg.AllowSorting = canSort;
dg.TableStyles[0].AllowSorting = canSort;
dg.ReadOnly = true;
//dg.CaptionVisible = false;

}
Paradise_heida 2005-01-24
  • 打赏
  • 举报
回复

控制列宽的方法有如下代码:

Dim MyTblStyle As New System.Windows.Forms.DataGridTableStyle
Me.DataGrid1.TableStyles.Add(MyTblStyle)
Me.DataGrid1.TableStyles.Item(0).GridColumnStyles(0).Width = 10
Me.DataGrid1.TableStyles.Item(0).GridColumnStyles(1).Width = 100

其中,DataGrid1是你的DataGrid名;
Item(0)指的是第二行代码添加的一个实例化以后的TableStyles,因为就添加了一个TableStyles,所以它的索引是0;
GridColumnStyles是DataGrid1的列的样式,而GridColumnStyles(0)是从左数第一个列的属性;
GridColumnStyles(0).Width = 0 就是把从左数第一个列的宽度设置为10,同样道理,
GridColumnStyles(1).Width = 100
就是把从左数第二个列的宽度设置为100。

weixinzhu 2005-01-24
  • 打赏
  • 举报
回复
建议用c1truedbgrid,非常好的第三方控件,而且免费
下载地址:http://msdn.microsoft.com/vbasic/vbrkit/default.aspx
xmmy 2005-01-24
  • 打赏
  • 举报
回复
楼上的,我忘说了,这个DataGrid是WinForm控件

是子表的列宽设置.谢谢!
queque716 2005-01-24
  • 打赏
  • 举报
回复
正确!
boygong 2005-01-24
  • 打赏
  • 举报
回复
Me.DataGrid1.Columns(i).Visible = False

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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