Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在DataGridView中隐藏一行_Vb.net_Visual Studio 2010 - Fatal编程技术网

Vb.net 在DataGridView中隐藏一行

Vb.net 在DataGridView中隐藏一行,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,我是vb.net的新用户,当用户右键单击上下文菜单并选择“隐藏”时,我需要隐藏一行。我已经在谷歌上搜索过了,但还没有找到一种方法 此时,当用户单击网格中的一个条目时,该值将输入到一个文本框中,这是正常的。我需要做的是隐藏用户右键单击的条目并隐藏选择。由于我是新手,我发现很难编写代码,因为我刚刚完成了第一门课程,其中包含了基础知识。任何帮助都将不胜感激,如果您需要更多的代码,请询问 Dim value As Object = UserDataGridView.Rows(e.RowIndex).Ce

我是vb.net的新用户,当用户右键单击上下文菜单并选择“隐藏”时,我需要隐藏一行。我已经在谷歌上搜索过了,但还没有找到一种方法

此时,当用户单击网格中的一个条目时,该值将输入到一个文本框中,这是正常的。我需要做的是隐藏用户右键单击的条目并隐藏选择。由于我是新手,我发现很难编写代码,因为我刚刚完成了第一门课程,其中包含了基础知识。任何帮助都将不胜感激,如果您需要更多的代码,请询问

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会起作用,但事实并非如此。任何建议。谢谢你在这方面的进一步帮助,或者我将它标记为已回答,公平地说,你已经回答了。我只是想请求额外的帮助。干杯