设置DataGrid表格控件的列显示样式,例如设置列宽,表头等

wubaiyong 2005-01-21 08:53:51
设置DataGrid表格控件的列显示样式,例如设置列宽,表头等,请各位帮忙,急用!!!
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
c11_11_11 2005-01-21
  • 打赏
  • 举报
回复
Label1.Parent = DataGrid1

Label1.BackColor = Color.Transparent

Dim dt As DataTable

dt = DataSet1.Tables.Add("MyTable")

dt.Columns.Add("列1", GetType(String))

dt.Columns.Add("列2", GetType(Integer))

Dim row, row1 As DataRow

row = dt.NewRow()

row!列1 = "行1"

row!列2 = 1

dt.Rows.Add(row)

row1 = dt.NewRow()

row1!列1 = "行2"

row1!列2 = 12

dt.Rows.Add(row1)

'构建完毕



Dim ts As New DataGridTableStyle() '就是它决定了datagrid是什么样的

Dim aColumnTextColumn As DataGridTextBoxColumn '决定每一列的样式

DataGrid1.DataSource = dt ‘ 设定数据源

ts.MappingName = dt.TableName



Dim numCols As Integer

numCols = dt.Columns.Count ‘数据源的列数

DataGrid1.CaptionText = "Henry示例"

Dim i As Integer = 0



Do While (i < numCols) '重绘所有的列

aColumnTextColumn = New DataGridTextBoxColumn()

'要更改列头名,请改下句的HeaderText值

aColumnTextColumn.HeaderText = dt.Columns(i).ColumnName ☆

aColumnTextColumn.MappingName = dt.Columns(i).ColumnName ☆

‘控制列宽与行宽

If i = 1 Then

ts.PreferredColumnWidth = 50

ts.PreferredRowHeight = 20

End If

ts.AlternatingBackColor = Color.LightGray '设定交替行的背景色

ts.GridColumnStyles.Add(aColumnTextColumn) '增加一种自定义的column风格

i = (i + 1)

Loop

DataGrid1.TableStyles.Add(ts) '增加一种自定义的表风格

'注:增加风格后,你在datagrid中实时增加新的纪录,风格仍不会变

wubaiyong 2005-01-21
  • 打赏
  • 举报
回复
有没有其它办法了,请贴一段成熟的代码.
心情解码 2005-01-21
  • 打赏
  • 举报
回复
:)


--
sutalon 2005-01-21
  • 打赏
  • 举报
回复
up
landlordh 2005-01-21
  • 打赏
  • 举报
回复

'通用样式化Datagird
'Power by:landlordh
'调用:
' strHeaders() 里面改为自已需要的列名
' iWidths() 里面改为相对应的列宽
' inputnum 在样式化之前赋值
' style(DataGrid1, DataSet1.Tables("codes"))
'
'=================================================================

'列名,字段对应名
Public strHeaders() As String = {"编号", "时间", "主题", "内容"}
'列宽,为0隐藏(优先级低于inputnum),对应的列宽
Public iWidths() As Integer = {0, 70, 130, 0}
'显示几列,为空则显示所有,为0则隐藏所有
Public inputnum As String

Public Sub style(ByVal datagridname As DataGrid, ByVal dataname As DataTable)
Try
datagridname.DataSource = dataname
'dataname.DefaultView.AllowNew = False
'dataname.DefaultView.AllowEdit = False
Dim i As Integer
If Trim(inputnum) <> "" Then
Dim num As Integer
Try
num = CInt(Trim(inputnum))
Try
For i = 0 To iWidths.Length - 1
If i >= inputnum Then
iWidths(i) = 0
End If
Next
Catch ex As Exception
End Try
Catch ex As Exception
MsgBox("你输入的字符不符合要求")
End Try
End If
Dim ts As New DataGridTableStyle
ts.MappingName = dataname.TableName
ts.AlternatingBackColor = System.Drawing.Color.PapayaWhip
ts.BackColor = System.Drawing.Color.WhiteSmoke
ts.GridLineColor = System.Drawing.Color.Tan
ts.SelectionBackColor = System.Drawing.Color.LightSteelBlue
ts.SelectionForeColor = Color.Black
ts.RowHeaderWidth = 10
ts.PreferredRowHeight = 20
For i = 0 To dataname.Columns.Count - 1
Dim ac As New DataGridTextBoxColumn
'处理点击行
'AddHandler ac.TextBox.Enter, AddressOf TextBoxEnterHandler
ac.HeaderText = strHeaders(i)
ac.MappingName = dataname.Columns(i).ColumnName
ac.TextBox.Width = iWidths(i)
ts.PreferredColumnWidth = ac.TextBox.Width
'哪列,i=第几列数-1
If i = 1 Then
ac.Format = "yyyy-mm-dd hh:mm:ss"
'ac.ReadOnly = True
'ac.NullText = ""
ac.Alignment = HorizontalAlignment.Center
End If
If i = 1 Or i = 2 Then
'ac.ReadOnly = True
'ac.NullText = ""
ac.Alignment = HorizontalAlignment.Center
End If
ts.GridColumnStyles.Add(ac)
Next
datagridname.TableStyles.Clear()
datagridname.TableStyles.Add(ts)
Catch ex As Exception
MessageBox.Show("格式化网格出错了")
End Try
End Sub

Public Sub TextBoxEnterHandler(ByVal sender As Object, ByVal e As System.EventArgs)
Dim inner As Control = sender
inner.Visible = False
If DataGrid1.CurrentRowIndex >= 0 Then
DataGrid1.Select(DataGrid1.CurrentRowIndex)
End If
'filltext()
End Sub
weixinzhu 2005-01-21
  • 打赏
  • 举报
回复
用c1truedbgrid,什么都可以实现,下载地址:
http://msdn.microsoft.com/vbasic/vbrkit/default.aspx
底层架构优化 Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块。 模块化数据库自动升级程序,当模块升级代码需要更新时,自动对应版本执行SQL更新。 授权模块,支持CAS单点登录,简单properties配置即可,不用再写很多的xml。 支持多数据源,简单properties配置即可实现,为了安全性吧,暂不提供界面维护数据源,不存数据库。 数据表主键优化,如分类科目表,采用有意义的主键方式,让客户去自定义,减少后期运维维护成本。 实体@Table注解配置 a. 自动生成增删改通用SQL,不需要在mapper.xml里写重复又费时的SQL了,减少开发和后期维护成本。b. 这里所有定义@Column均放到类头,而不是分布到各个属性或方法上,这是如下原因:c. 一是,放到表头的好处是,可一览熟知该实体类对应的物理表结构是什么样,开发者思维从物理表结构到对象的映射转换,都是基于物理表结构的,@Column指定物理字段名,而不是指定类上的属性名,也是这个原因;d. 二是,生成的SQL和查询条件,的排顺序,可方便核查定义,优化查询;e. 三是,方便@JoinTable关联表和其它扩展信息的设置,如果分布到类的属性上就不太好管理。 用户数据权限优化,不仅仅是角色,颗粒度细化到每个人员的身上,可自定义第三方数据权限,不仅仅是部门和公司,你可以扩展,如:地区,栏目分类,商品分类。 支持SAAS多租户模式,每个租户数据通过corp_code字段进行分离,数据互不干扰。 缓存EhCache统一管理,支持快速切换为Redis缓存,集群Session缓存共享。 安全方面优化 原有JeeSite1.2安全选项及安全考虑保留。 配置文件数据库密码及其它安全密钥自动加密。 所有请求参数获取,均通过XSS跨站脚本过滤方法。 乐观锁简单实现,必要情况下使用,提高数据安全性。 通过properties简单配置,限制是否允许JS跨域操作。 身份认证 a. 登录失败多少次后显示验证码b. 登录失败多少次后锁定账号及锁定账号时间c. 登录账号密码可加密后再提交后台d. 同设备是否允许账号多地登录 密码策略 a. 初始密码修改策略,提醒或强制用户修改初始密码。b. 账号密码修改策略,多长时间内未修改,则提醒或强制修改密码。c. 账号密码安全等级限制策略,很弱密码,弱密码,安全密码,很安全密码 安全审计(后期) a. 查询未修改初始密码的账号,使用简单密码的,定期未修改的,长期未登录的。b. 权限审计,按登录账号查询菜单和权限,按菜单和权限查询登录账号 用户界面优化 平面化界面设计,精细,更加美观、高端、大气、上档次。 支持手机或平板访问,响应式样式,根据屏幕分辨率自适应控件布局。 无刷新设计,除了进入功能页面和新页面,其它情况下全部采用Ajax交互,优化体验和性能。 支持一件换肤,只需在properties里修改下主题名称即可快速切换整个UI的风格,不仅仅是色调和样式,布局也可改变。支持自定义扩展项目独有的主题样式风格。 优化用户功能操作,大众思维模式,功能清晰,更加贴切和友好。 前端开发优化 采用当前比较流行的Beetl模板引擎,它的优点很多,大家可自行查阅看看,这里不多说了。 封装Beetl UI通用组件,简单实现基本表单控件、树选择,表选择,文件上传,等等很多,总之是简化开发。 数据表格jqGrid组件封装,自动完成分页、排序、、多表头、子表、编辑表、等。 功能及组件优化 工具类Utils封装优化,应有尽有,包分类层次分明,独立工具类项目。 强大的Excel导出导入工具封装,支持大数据量,注解定义,简单配置即可实现。 Job作业调度,界面化在线管理,可新增,编辑、删除、暂停、恢复、运行一次等操作 在线查询在线人员,强踢在线账号。 代码生成工具操作简化及优化。

16,554

社区成员

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

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