Vb.net 在DataGridView中隐藏一行
我是vb.net的新用户,当用户右键单击上下文菜单并选择“隐藏”时,我需要隐藏一行。我已经在谷歌上搜索过了,但还没有找到一种方法 此时,当用户单击网格中的一个条目时,该值将输入到一个文本框中,这是正常的。我需要做的是隐藏用户右键单击的条目并隐藏选择。由于我是新手,我发现很难编写代码,因为我刚刚完成了第一门课程,其中包含了基础知识。任何帮助都将不胜感激,如果您需要更多的代码,请询问Vb.net 在DataGridView中隐藏一行,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,我是vb.net的新用户,当用户右键单击上下文菜单并选择“隐藏”时,我需要隐藏一行。我已经在谷歌上搜索过了,但还没有找到一种方法 此时,当用户单击网格中的一个条目时,该值将输入到一个文本框中,这是正常的。我需要做的是隐藏用户右键单击的条目并隐藏选择。由于我是新手,我发现很难编写代码,因为我刚刚完成了第一门课程,其中包含了基础知识。任何帮助都将不胜感激,如果您需要更多的代码,请询问 Dim value As Object = UserDataGridView.Rows(e.RowIndex).Ce
Dim value As Object = UserDataGridView.Rows(e.RowIndex).Cells(0).Value
txtCustomerActive.Text = CType(value, String)
Private Sub HideToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles pnlContextMenuStrip1.ItemClicked
'Get the text of the item that was clicked on.
'Dim text As String = txtCustomerActive.Text
Try
'txtCustomerActive.Visible = False
pnlContextMenuStrip1.Visible = False
MessageBox.Show(txtCustomerActive.Text)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
据我所知,您不能为鼠标右键单击创建服务器端处理程序(就像您为HideToolStripMenuItem_click所做的那样,它是.NET回发机制的一部分) 然而,我相信这种特性可以通过一些客户端javascript编程来实现
希望这有帮助 您可以使用
Rows.Item()
隐藏特定的DataGridViewRow
,例如:
If (UserDataGridView.Rows.Count > 0) Then
For Each row As DataGridViewRow In UserDataGridView.SelectedRows
UserDataGridView.Rows.Item(row.Index).Visible = False
Next
End If
我假设您使用的是FullRowSelect
如果您没有使用FullRowSelect
,您可以使用此替代代码,它可以捕获被选中的单元格
,或者被选中的行
:
If (UserDataGridView.SelectedRows.Count > 0) Then
For Each row As DataGridViewRow In UserDataGridView.SelectedRows
UserDataGridView.Rows.Item(row.Index).Visible = False
Next
ElseIf (UserDataGridView.SelectedCells.Count > 0) Then
For Each cell As DataGridViewTextBoxCell In UserDataGridView.SelectedCells
UserDataGridView.Rows.Item(cell.RowIndex).Visible = False
Next
End If
要取消隐藏
所有内容,让我们通过按钮单击
可以获得以下内容:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
For Each row As DataGridViewRow In UserDataGridView.Rows
If (row.Visible = False) Then
UserDataGridView.Rows.Item(row.Index).Visible = True
End If
Next
End Sub
似乎不可能影响单个单元格的可见性:@varocabas我需要隐藏整行。谢谢你应该更清楚的回答,这里没有提到行;但对细胞的影响是多种多样的。(更新版本以避免误解:)哇,事实上,你可以=)如果你意识到了什么,只需更新你的答案;不要发表评论。此外,在回答问题之前,对具体问题有或多或少的了解也是个好主意。至少,要知道确切的框架:您假设OP引用ASP,而关于他的问题的所有内容似乎都表明不是这样(ASP中甚至没有名为DataGridView的控件)。OP不想删除该行,只是想隐藏它。因此,他应该依赖行的Visible属性。我已经尝试了两个代码Edper和两个错误:与货币管理人位置相关的行不能被隐藏。我想我找到了答案。我在for each循环中使用了UserDataGridView.CurrentCell=什么都没有,而且似乎可以在那里使用吗?如果我退出程序并再次运行,则似乎会出现问题。行被取消隐藏。我需要使永久,并有能力取消隐藏所有客户。我原以为在取消隐藏菜单中使用代码并将visible更改为true会起作用,但事实并非如此。任何建议。谢谢你在这方面的进一步帮助,或者我将它标记为已回答,公平地说,你已经回答了。我只是想请求额外的帮助。干杯