28. april 2006 - 21:37Der er
12 kommentarer og 1 løsning
ContextMenuStrip hø-klik menu
Hej VB .Net windows projekt. Jeg har nærmest lavet en "tabel" med textboxe der indeholder personoplysninger ud af "x-aksen" og en ny person for hver række.
I første kolonne har jeg oprettet en hø-klik menu (ContextMenuStrip). Jeg har problem med at henvise til den celle jeg hø-klikkede i. Hvis jeg skriver følgende:
If TextBox1.Focused Then MsgBox("Seng 1,1") ElseIf TextBox2.Focused Then MsgBox("Seng 1,2") End if
så får jeg ikke den celle jeg hø-klikkede i men i stedet den celle jeg pt står i (jeg håber ikke at det blev for snørklet)
Hvordan kan man referere til den textbox man klikkede i?
Private Sub ContextMenuStrip1_Opening(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening Dim source As TextBox = Me.ContextMenuStrip1.SourceControl
If source.Equals(Me.TextBox1) Then MsgBox("Seng 1,1") ElseIf source.Equals(Me.TextBox2) Then MsgBox("Seng 1,2") End If End Sub
...men hvilket bud - det fungerer til punkt og prikke. Tak for det - svar lige for point :0) Et lille tillægsspørgsmål (blot hvis du skulle vide det): Contextmenuen vises selv om textboxen er tom. Kan man undgå at den gør det? vh Steen
Private Sub ContextMenuStrip1_Opening(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening
Dim source As TextBox = Me.ContextMenuStrip1.SourceControl
If source.Text.Trim = "" Then e.Cancel = True Else If source.Equals(Me.TextBox1) Then MsgBox("Seng 1,1") ElseIf source.Equals(Me.TextBox2) Then MsgBox("Seng 1,2") End If End If
OK - tak! Kan du også svare på det her - så er det mere end godt: Hvis men har en variabel man gerne vil anvende når man eksempelvis klikker på 1 item i contextmenuen hvorledes skal den variabel så dim'es?
eksempel: If source.Equals(Me.TextBox1) Then HCV = me.textbox1.text Cpr = me.textbox73.text ElseIf source.Equals(Me.TextBox2) Then ' MsgBox("Seng 1,2") End If
med andre ord hvorledes skal HCV og Cpr dim'es hvis de skal kunne bruges i click-menuen? vh Steen
Hvis de kun skal bruges der, og ikke andre steder, ja så er det der at de skal Dim'es.
Private Sub ContextMenuStrip1_Opening(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening
Dim source As TextBox = Me.ContextMenuStrip1.SourceControl
If source.Text.Trim() = "" Then e.Cancel = True Else If source.Equals(Me.TextBox1) Then Dim HCV As String = Me.TextBox1.Text Dim Cpr As String = Me.TextBox73.text MsgBox("Seng 1,1") ElseIf source.Equals(Me.TextBox2) Then MsgBox("Seng 1,2") End If End If
Nej, for så er det jo ikke *kun* der at de skal bruges. ;^)
Så skal de "ud" hvor at de kan ses fra resten af form'en:
Public Class Form1
Private HCV As String = "" Private Cpr As String = ""
Private Sub ContextMenuStrip1_Opening(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening
Dim source As TextBox = Me.ContextMenuStrip1.SourceControl
If source.Text.Trim() = "" Then e.Cancel = True Else If source.Equals(Me.TextBox1) Then HCV = Me.TextBox1.Text Cpr = Me.TextBox73.Text MsgBox("Seng 1,1") ElseIf source.Equals(Me.TextBox2) Then MsgBox("Seng 1,2") End If End If
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.