VisualBasic DataGridView: Rechtsklick (Kontextmenü) soll Browser mit jeweiliger Row-ID öffnen

sYnq

Lieutenant
Registriert
Mai 2010
Beiträge
563
Hallo,
ich möchte ein kleines Tool programieren, das für eine LAN-Party die geplanten Spiele anzeigt. Ich habe mich nun für ein DataGridView entschieden - das funktioniert auch schon recht gut. Wenn man mit der rechten Maustaste auf eine Zeile klickt, soll ein Kontextmenü erscheinen mit verschiedenen Optionen (das kommt aber später irgendwann mal), wichtig ist mir im ersten Schritt, dass im Kontextmenü "Details anzeigen" erscheint. Das funktioniert auch, siehe Bild:



Wenn man nun auf "Details anzeigen" klickt, soll sich automatisch der Browser öffnen und die ID des jeweiligen Eintrags übermitteln. Außerdem möchte ich die Benutzer-ID (gespeichert in My.Settings.user_id) übermitteln, das funkioniert aber schon.

Ich möchte also, dass im Beispiel oben (angenommen ich habe die User-ID 1) folgende URL aufgerufen wird:
http://www.example.org/index.php?uid=1&fid=2

Wie mache ich sowas?
Hier mal schnell den Code, den ich bisher zusammengefrickelt habe :D

Code:
    Private Sub cmdFightsabrufen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFightsabrufen.Click
        Dim connectionstring As String
        Dim commandtext As String
        Dim adapter As MySqlDataAdapter
        Dim table As DataTable
        commandtext = "SELECT * FROM fights ORDER BY ID DESC"

        connectionstring = "server=XXX;" _
                             & "uid=XXX;" _
                             & "pwd=XXX;" _
                             & "database=XXX;"

        Try
            adapter = New MySqlDataAdapter(commandtext, connectionstring)
            table = New DataTable
            adapter.Fill(table)
            DataGridView1.DataSource = table
            DataGridView1.ClearSelection()
        Catch ex As Exception

        End Try

    End Sub

Dann habe ich noch über den Designer-Modus ein Kontextmenü hinzugefügt und dem DGV unter "ConectMenuStrip" das Kontextmenü zugewiesen.

Code:
    Private Sub DetailsAnzeigenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DetailsAnzeigenToolStripMenuItem.Click
        System.Diagnostics.Process.Start("http://www.example.org/index.php?uid=" & My.Settings.user_id & "&fid="?!?!?!?!?!?!?!?!?!!?!?!?!?!?!?!?)
    End Sub
Ergänzung ()

Moin moin,
hab jetzt nochmal im Internet weitergesucht und bin dann auf diesen Thread gestoßen:

http://www.vb-paradise.de/programmi...389-datagridview-ausgewaehlte-zelle-auslesen/

Habs nun so gelöst und erstaunlicherweise funktioniert das sogar :D

Code:
    Private Sub DetailsAnzeigenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DetailsAnzeigenToolStripMenuItem.Click
        System.Diagnostics.Process.Start("http://www.example.org/index.php?uid=" & My.Settings.user_id & "&fid=" & DataGridView1.CurrentRow.Cells("ID").Value)
    End Sub

Gibts da irgendwas gegen einzuwenden?! Habs gerade mal hin- und hergetestet, die ID wird jedes mal richtig erkannt. Kommt mir jetzt gerade trotzdem spanisch vor, dass es doch so einfach ist :D
 
Die Lösung ist nunmal so einfach. Die zweite Methode (wie im Link bereits angegeben) wäre die n-te Spalte über Cells(n-1) anzusprechen. Übrigens gibt es gerade für solche Themen eine äußerst gut dokumentierte MSDN-Bibliothek: Link.
 
Zurück
Oben