CNET中国旗舰网站
ZDNet China
|
CNET科技资讯网
|
政府采购
|
行业网站联盟
ZDNet China 至顶网是中国最大的企业级IT资源门户
首页
网络安全
存储
服务器
软件
桌面产品
开发
企业管理
白皮书
中小企业
新闻
下载
社区
企业网
无线网
过滤防护
安全管理
网络存储
磁带库/VTL
数据保护
光存储
X86服务器
虚拟化
小型机
操作系统
数据库
中间件
协作办公
手机
笔记本
数码相机
C/S开发
web开发
移动开发
web软件
应用软件
博客
论坛
搜索
搜索
高级搜索
用户登录
用户名:
密码:
登录
新用户注册
社区首页
未证实消息
桌面产品
软件
开发
网络与安全
服务器
存储
下载
苹果爱好者
中小企业
活动专区
病毒/木马
新知天下
CWEEK专属社区
悬赏问答
游客:
注册
|
登录
|
会员
|
搜索
|
论坛设施
|
帮助
ZDNetChina中文社区
»
开发语言
»
.Net技术
» WinForm DataGrid 的DataGridTableStyle用法
C++开发常用工具荟萃
深入理解C语言指针的奥秘
Vista系统解惑要考虑的10件事
Asp.Net 学习资源列表
J2ME与Web Service的罗曼史
中间件技术的思想、概念、分类
.Net开发人员十种必备工具
用JSP 2.0开发Web应用程序
草根挑战豪门PHPer要为自己正名
高手写的php+flash多人视频聊天室
PHP程序员的优化调试技术和技巧
PHP程序员的优化调试技术和技巧
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题:
[分享]
WinForm DataGrid 的DataGridTableStyle用法
zhang_daqian
特级会员
UID 280439
精华 0
积分 986
帖子 52
威望 320
ZD币 91 元
阅读权限 70
注册 2007-12-25
状态 离线
楼主
发表于 2008-5-5 13:09
资料
个人空间
短消息
加为好友
开发者在线
WinForm DataGrid 的DataGridTableStyle用法
Part 1 自定义数据源方式的代码,首先在winform里拖一个DataGrid进去。
private
void
Form1_Load(
object
sender, System.EventArgs e)
{
//
定义数据源--DataTable
DataTable dt
=
new
DataTable(
"
mytable
"
);
//
添加列
dt.Columns.Add(
"
列1
"
,
typeof
(String));
dt.Columns.Add(
"
列2
"
,
typeof
(Int32));
dt.Columns.Add(
"
列3
"
,
typeof
(Boolean));
//
添加行
DataRow row,row1;
row
=
dt.NewRow();
row[
"
列1
"
]
=
"
行1
"
;
row[
"
列2
"
]
=
1
;
row[
"
列3
"
]
=
true
;
dt.Rows.Add(row);
row1
=
dt.NewRow();
row1[
"
列1
"
]
=
"
行2
"
;
row1[
"
列2
"
]
=
2
;
row1[
"
列3
"
]
=
false
;
dt.Rows.Add(row1);
//
为DataGrid添加数据源
dataGrid1.DataSource
=
dt;
//
定义DataGridTableStyle
DataGridTableStyle ts
=
new
DataGridTableStyle();
ts.MappingName
=
dt.TableName;
//
映射style对应数据源的表名,很重要,否则无数据显示
//
分别对列进行渲染
int
numColumns
=
dt.Columns.Count;
dataGrid1.CaptionText
=
"
DataGrid事例
"
;
//
指名DataGrid标题
//
采用循环方式渲染前两列
DataGridTextBoxColumn aColumnTextColumn;
for
(
int
i
=
0
;i
<
numColumns
-
1
;i
++
)
{
//
前两列绑定TextBox方式显示
aColumnTextColumn
=
new
DataGridTextBoxColumn();
aColumnTextColumn.HeaderText
=
dt.Columns
.ColumnName;
//
列头
aColumnTextColumn.MappingName
=
dt.Columns
.ColumnName;
//
映射数据源的列名,很重要,否则无数据显示
if
(i
==
1
)
{
//
规定Cell的高度和宽度,然后渲染
ts.PreferredColumnWidth
=
100
;
ts.PreferredRowHeight
=
20
;
}
//
指名交替行的背景色
ts.AlternatingBackColor
=
Color.LightGray;
//
TableStyle的ColumnStyle列添加上面指定的TextBox
ts.GridColumnStyles.Add(aColumnTextColumn);
}
//
用CheckBox的方式渲染第3列
DataGridBoolColumn bc
=
new
DataGridBoolColumn();
bc.HeaderText
=
dt.Columns[
2
].ColumnName;
bc.MappingName
=
dt.Columns[
2
].ColumnName;
ts.PreferredColumnWidth
=
100
;
ts.GridColumnStyles.Add(bc);
//
DataGrid上添加上面定义的TableStyle
dataGrid1.TableStyles.Add(ts);
}
Part 2 用查询数据库的结果集作为数据源,首先在winform里拖一个datagrid。
private
void
Form2_Load(
object
sender, System.EventArgs e)
{
DataSet ds
=
BookingCar.Business.Facade.Order.QueryAllOrderStatus();
//
查询数据库得到DataSet
dataGrid1.DataSource
=
ds.Tables[
0
];
//
设定数据源
dataGrid1.CaptionText
=
"
DataGrid试验
"
;
//
设定DataGrid的标题
DataGridTableStyle ts
=
new
DataGridTableStyle();
//
定义TableStyle
ts.MappingName
=
ds.Tables[
0
].TableName;
//
映射表名称,重要
ts.ReadOnly
=
false
;
//
整个DataGrid读写方式
//
第一列
DataGridTextBoxColumn tc
=
new
DataGridTextBoxColumn();
//
定义第一列用TextBox渲染
tc.HeaderText
=
"
状态类型
"
;
//
改变列头的显示
tc.MappingName
=
ds.Tables[
0
].Columns[
0
].ColumnName;
//
映射列的名称,重要,实际就是查询select 对因的列
tc.Alignment
=
HorizontalAlignment.Center;
//
对齐方式
tc.ReadOnly
=
true
;
//
指明这一列的为只读方式
ts.PreferredColumnWidth
=
70
;
//
指明Cell宽度
ts.PreferredRowHeight
=
20
;
//
指名Cell高度
ts.AlternatingBackColor
=
Color.LightGray;
ts.GridColumnStyles.Add(tc);
//
为ColumnStyle添加上面的TextBox
//
第二列
tc
=
new
DataGridTextBoxColumn();
tc.HeaderText
=
"
状态描述
"
;
tc.MappingName
=
ds.Tables[
0
].Columns[
1
].ColumnName;
ts.PreferredColumnWidth
=
200
;
ts.PreferredRowHeight
=
20
;
ts.AlternatingBackColor
=
Color.LightGray;
ts.GridColumnStyles.Add(tc);
//
把TableStyle添加到DataGrid的tablestyle中
dataGrid1.TableStyles.Add(ts);
}
Part 3 使用DataGrid的属性面板。首先在winform里拖一个datagrid。
private
void
Form3_Load(
object
sender, System.EventArgs e)
{
DataSet ds
=
BookingCar.Business.Facade.Order.QueryAllOrderStatus();
dataGrid1.DataSource
=
ds.Tables[
0
];
}
然后在TableStyle属性框内添加TableStyle,一般添加一个就够了,然后为TableStyle添加ColumnStyle,对应多个列。两个属性的mappingname都很重要,TableStyle的mappingname对应结果集的表名称,columnstyle的mappingname对应列的名称。
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
开通个人空间
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
问卷调查
当前时区 GMT+8, 现在时间是 2009-7-4 07:07
Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 0.083352 second(s), 4/3 queries
TOP
清除 Cookies
-
联系我们
-
ZDNetChina中文社区
-
无图版