4

私は 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
4

2 に答える 2

8

次のような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の両方をキャッチできる次の代替コードを使用できます。CellRow

  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

あなたがこれを持つことができるUnhideから言ってみましょうButton Click

 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
于 2013-11-08T09:23:35.987 に答える
0

私の知る限り、マウスの右クリック用のサーバー側ハンドラーを作成することはできません (.NET ポストバック メカニズムの一部として機能する HideToolStripMenuItem_Click の場合と同様)。

ただし、そのような機能は、クライアント側の JavaScript プログラミングで実行できると思います。

お役に立てれば!

于 2013-11-08T09:16:47.247 に答える