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?
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
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.