在Winform中的datagrid的如何添加一列checkbox控件的问题,请各位大侠帮帮忙,谢谢!

seawavefj 2005-12-26 11:43:11
在Winform中的datagrid的如何添加一列checkbox控件的问题,请各位大侠帮帮忙,谢谢!
...全文
149 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Taurus_li 2005-12-30
  • 打赏
  • 举报
回复
Private Sub setdgdDokyuStyle()
Dim lv_DataTable_Program As New DataTable
Dim lv_DataView_Program As DataView
Dim lv_DataColumn_Check As New DataColumn("選択", GetType(Boolean)) '選択
Dim lv_DataColumn_Num As New DataColumn("内容", GetType(String)) '内容
Dim ts As New DataGridTableStyle
Dim tc As DataGridTextBoxColumn
Dim tb As DataGridBoolColumn

dgdDokyu.CaptionVisible = False
lv_DataTable_Program.Columns.Clear()

lv_DataTable_Program.Columns.Add(lv_DataColumn_Check)
lv_DataTable_Program.Columns.Add(lv_DataColumn_Num)
lv_DataView_Program = New DataView(lv_DataTable_Program)
dgdDokyu.DataSource = lv_DataView_Program.Table
lv_DataView_Program.Table.DefaultView().AllowNew = False


'開始属性を設定
ts.MappingName = lv_DataTable_Program.TableName
ts.RowHeadersVisible = False

tb = New DataGridBoolColumn
With tb
.MappingName = "選択" '選択
.HeaderText = "選択" '選択
.Width = 50
.ReadOnly = False
.AllowNull = False
End With
ts.GridColumnStyles.Add(tb)

tc = New DataGridTextBoxColumn
With tc
.MappingName = "内容" '内容
.HeaderText = "内容" '内容
.Width = 686
.NullText = ""
.ReadOnly = False
End With
ts.GridColumnStyles.Add(tc)

dgdDokyu.TableStyles.Clear()
dgdDokyu.TableStyles.Add(ts)

End Sub
这样应该就可以了
hamadou 2005-12-26
  • 打赏
  • 举报
回复
因为在设置了数据源后,通过调用addselectcolumn()方法,来增加一个选入的列,然后调用了上面的settablestyle过程。
具体的就是:
1.首先通过select id ,name,...from table1 ,类似这样的sql语句来fill出一个datatable.
2.然后调用addselectcolumn方法
代码如下:

Private Sub addselectcolumn()
Dim c As New DataColumn("Isselect", GetType(Boolean))
c.DefaultValue = False
Me._datatableDetail.Columns.Add(c)

End Sub
3.最后调用settablestyle过程
seawavefj 2005-12-26
  • 打赏
  • 举报
回复
TO: hamadou(闵峰)
我参照你的方法测试了一下,出来的checkbox是灰显的,不能修改的,我的是想在datagrid中加个checkbox,要删除多条记录时,在checkbox中打勾,点删除就把那些勾起来的数据删除了。请问还有更好的方法吗?
hamadou 2005-12-26
  • 打赏
  • 举报
回复
Private Sub settablestyle()

Dim style As New DataGridTableStyle
style.AllowSorting = False
style.MappingName = Me._datatableDetail.TableName
Dim count As Integer = CType(grdDispList.DataSource, DataView).Table.Columns.Count
Dim i As Integer
Dim colCap() As String = {"客户编码", "客户名称", "收款日期", "往来编号", "本次收款金额", "类型", "状态", "备注"}

Dim colWidth() As Integer = {70, 100, 70, 70, 70, 50, 70, 80}

For i = 0 To count - 1
Select Case i
Case 0
Dim c As New DataGridBoolColumn
c.MappingName = "Isselect"
c.HeaderText = "是否选入"
c.Width = 60
c.AllowNull = False
style.GridColumnStyles.Add(c)
Case 1, 2, 3, 4, 5, 6, 7, 8
Dim c As New DataGridTextBoxColumn
c.MappingName = CType(grdDispList.DataSource, DataView).Table.Columns(i - 1).ColumnName
c.HeaderText = colCap(i - 1)
c.NullText = ""
c.Width = colWidth(i - 1)
c.ReadOnly = True
style.GridColumnStyles.Add(c)
End Select
Next

Me.grdDispList.TableStyles.Add(style)
End Sub
yrh2008sql 2005-12-26
  • 打赏
  • 举报
回复
你可以给datatable增加一列,然后给这一列的每个单元格增加一个checkbox

16,554

社区成员

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

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