关于DataGridView的动态按钮
vb.net吧
全部回复
仅看楼主
level 1
taogehu9 楼主
我在form_load事件里给DataGridView动态加了两列按钮,分别是跳转到指定的链接和删除一行数据。当有多条数据时,每一行的跳转按钮都可以响应单击事件,但是删除一行按钮只能响应一次,就是说删除掉一行时可以正常运行,但是接下来如果想再删一行,所有的按钮都失去响应,也不会报错,请大神指点迷津。关键代码如下:
Try
If e.ColumnIndex = DataGridView1.Columns(5).Index Then '跳转到指定链接的按钮
Dim url As String = DataGridView1.Item("链接", e.RowIndex).Value
Form2.Visible = True
Form2.WebBrowser1.Navigate(url)
Form2.WebBrowser1.ScriptErrorsSuppressed = True
Else
If e.ColumnIndex = DataGridView1.Columns(6).Index Then '删除一行的按钮
Dim url As String = DataGridView1.Item("链接", e.RowIndex).Value
Dim jigou As String = DataGridView1.Item("发布机构", e.RowIndex).Value
Dim sqlstr As String = "update " & jigou & " set 更新状态 = '否' where 链接 = " & "'" & url & "'"
Dim dt1 As DataTable
updateaccess(sqlstr, linkpath, jigou) '自己写的更新数据库函数,可以正常使用
dt1 = redata(linkpath, jigou, 30) '自己写的数据表重构函数,目的是让update后的数据不再显示,也可以正常使用
DataGridView1.DataSource = dt1 '使用dt1更新一下数据源,这样被update的数据就从datagridview里删掉了
End If
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
2018年06月16日 13点06分 1
level 1
taogehu9 楼主
自己顶,求高手指点
2018年06月16日 15点06分 2
level 1
taogehu9 楼主
贴吧这么冷清,有木有高人啊
2018年06月17日 01点06分 3
level 11
我做过类似的功能,你动态添加按钮的代码呢
2018年06月17日 01点06分 4
level 11
添加按钮的代码,我是在数据绑定后事件里面写的
2018年06月17日 01点06分 5
因为字数有限制,所以在你楼下回复了代码,请帮忙看看,谢谢
2018年06月17日 05点06分
level 1
taogehu9 楼主
动态添加按钮的代码如下:
Dim dgbtn1 As DataGridViewButtonColumn = New DataGridViewButtonColumn()
Dim dgbtn2 As DataGridViewButtonColumn = New DataGridViewButtonColumn()
dgbtn1.HeaderText = "操作1"
dgbtn2.HeaderText = "操作2"
dgbtn1.Text = "查看详情"
dgbtn2.Text = "不感兴趣"
dgbtn1.UseColumnTextForButtonValue = True
dgbtn2.UseColumnTextForButtonValue = True
DataGridView1.Columns.AddRange(dgbtn1)
DataGridView1.Columns.AddRange(dgbtn2)
DataGridView1.Columns(5).Width = 74
DataGridView1.Columns(6).Width = 74
2018年06月17日 05点06分 6
Dim dgbtn1 As DataGridViewButtonColum 我是把列字段提到过程之外的,也就是非过程局部变量,是窗体级的变量
2018年06月17日 05点06分
@闪星2 果然是这个问题,太感谢啦
2018年06月17日 09点06分
@闪星2 又遇到新的问题了,我的Datagridview需要不断向里面更新数据,当添加了一个新行进去以后,在界面上能正常显示,但是生成的按钮列就都不响应操作了,这个要怎么解决?
2018年06月17日 14点06分
@taogehu9 更新数据的时候我是给DataGridView重新绑定的数据源
2018年06月17日 14点06分
1