2016-12-13 5 views
0

Ich bin neu in VB und .NET, und ich versuche, ein Meldungsfeld anzuzeigen, wenn der Benutzer auf ein Datenraster doppelklickt, um ausgewählte Daten anzuzeigen.Popup Datagridview

Normalerweise kann ich einfach MessageBox("Hello") von Windows-Steuerelement mit der Schaltfläche klicken Ereignis.

Aber wenn ich MessageBox („Hallo“) von Datagridview double click-Ereignis geben, erhalte ich einen Compiler-Fehler

‚MessageBox‘ ist eine Art Klasse und kann nicht als Ausdruck verwendet werden.

Ich habe auch versucht ein zweites leeres Formular auf Visual Studio zu erstellen, auf Click-Ereignis Taste I in getippt: Form2.Show(), und ich habe das gleiche auf Datagridview Doppelklick Ereignis. Wenn ich auf den Button klicke, wird Form2 angezeigt, aber wenn ich auf datagridview doppelklicke, wird Form2 nicht angezeigt.

Jeder Grund, warum sich die Steuerung von datagridview anders verhält als andere Windows-Steuerelemente, und was ist die beste und einfachste Möglichkeit, Popup-Fenster anzuzeigen oder die zweite Form anzuzeigen, wenn der Benutzer auf datagridview doppelklickt?

Was ich versuche zu tun ist, wenn der Benutzer auf datagridview doppelklickt, möchte ich ein Pop-up-Formular erstellen, und füllen Sie einige der Daten aus ausgewählten datagridview Zeile in dem Popup-Formular.


Ich bin nicht sicher, wie Alex Vorschlag zu antworten, ich versuche, Kommentar hinzufügen, aber es sagt mehr als 125 Zeichen und ich konnte nicht, um den Thread zu antworten finden, so dass ich es gerade hier setzen. (lassen Sie es mich wissen, wenn es einen besseren Weg gibt, dies zu tun, anstatt weiter zu meinen Fragen hinzuzufügen).

Hallo Alex,

dies der Code ist, dass ich auf form1 Klasse haben, ist form2 Klasse nur eine einfache leere Form, ich schaffe nur neue Form hinzufügen richtige Form von Visual Studio hinzufügen klicken. Nachdem ich auf den Button klicken form2 ist Pop-up, dann schließe ich Form2, dann doppelklicke datagridview Zelle, nichts passiert, ich klicke auf den Button form2 ist Pop-up.

Vielen Dank.

Public Class Form1 Private Sub Form1_Load (Absender als Gegenstand, e As EventArgs) Griffe MyBase.Load ‚TODO: Diese Codezeile lädt Daten in die 'TestDB1DataSet.t_emp' Tisch. Sie können es bei Bedarf verschieben oder entfernen. Me.T_empTableAdapter.Fill (Me.TestDB1DataSet.t_emp)

End Sub 

Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick 
    ' put some code here 
    Form2.Show() 
End Sub 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Form2.Show() 

End Sub 

End Class

+1

können Sie einige Beispiel nach, was machst du –

+0

'MessageBox' * ist * ist eine Art Verwenden Sie die '.Show()' Methode: 'MessageBox.Show (...)' – Plutonix

+0

Verwenden Sie 'MsgBox (" Hello ")' stattdessen – SSS

Antwort

1

Diese sind sehr einfach, Fehler zu machen:

  1. Die MessageBox("Hello") sollte MessageBox.Show("Hello") sein - so einfach wie Das. MessageBox ist ein Typ; Show ist die Methode, die Sie aufrufen.

  2. Der Grund, glaube ich, die Doppelklick-Ereignis auf dem Datagridview hat nicht funktioniert, weil Sie überprüfen müssen, wenn sie auf die Zellen klicken sowie prüft wird, ob sie auf den grauen Bereich des Fensters klicken verdoppeln (Was ist die Doppelklick-Methode!So) diesen Code verwenden hier - sicher sein, in dem ein Teil ersetzen ‚dataGridView1‘ nach dem sagt es Handles, was auch immer der Name des DataGridView ist:

    Private Sub DataGridView1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseDoubleClick 
        DoubleClickDataGrid() 
    End Sub 
    
    Private Sub TYPEANYNAMEHERE(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDoubleClick 
    DoubleClickDataGrid() 
    End Sub 
    
    Sub DoubleClickDataGrid() 
        ' Type the code here 
    End Sub 
    

Was auch immer Code, den Sie wollen es tun, wenn Sie doppelklicken Sie gehen, wo es heißt ‚hier den Code Typ‘

(Beispiel:? Form2.Show oder MessageBox.Show("Hello")) usw.

+0

Sie erwähnen in Ihrer Antwort, dass OP "MessageBox.Show" verwenden sollte, aber Ihr Code verwendet "MsgBox"; Bitte sei entweder konsistent oder erkläre, was 'MsgBox' ist und warum du es verwendest. –

+0

Es tut mir unglaublich Leid, das war ein Fehler - ich habe es jetzt bearbeitet und werde dafür sorgen, dass das nicht wieder passiert. – ABPerson