none
TextBox.Name RRS feed

  • Frage

  • Hallo,
    ich bin Neuling in Visual Basic 2008.
    Der Umstieg von Excel und Access ist zeitaufwändig.

    Ich suche eine Möglichkeit, den Namen der TextBox bei Enter zu ermitteln.

    Ich bitte um Tipps, Links oder was sonst noch helfen könnte.

    Danke
    Peter
    Dienstag, 26. Januar 2010 18:21

Antworten

  • Hallo Peter,

    Deine Frage ist unscharf formuliert. Meinst Du mit Enter das Ereignis, wenn die TextBox den Fokus erhält oder die Eingabetaste (Enter)?

    Public Class Form1
      Private Sub TextBox1_Enter(ByVal sender As Object, _
                                 ByVal e As System.EventArgs _
                                       ) Handles TextBox1.Enter
    								   
        MsgBox(DirectCast(sender, TextBox).Name)
      End Sub
    
      Private Sub TextBox1_KeyDown(ByVal sender As Object, _
                                   ByVal e As System.Windows.Forms.KeyEventArgs _
                                         ) Handles TextBox1.KeyDown
    									 
        If e.KeyCode = Keys.Enter Then
          e.Handled = True
          MsgBox(DirectCast(sender, TextBox).Name)
        End If
      End Sub
    End Class


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Dienstag, 26. Januar 2010 21:48
    Moderator

Alle Antworten

  • Hallo Peter,

    Deine Frage ist unscharf formuliert. Meinst Du mit Enter das Ereignis, wenn die TextBox den Fokus erhält oder die Eingabetaste (Enter)?

    Public Class Form1
      Private Sub TextBox1_Enter(ByVal sender As Object, _
                                 ByVal e As System.EventArgs _
                                       ) Handles TextBox1.Enter
    								   
        MsgBox(DirectCast(sender, TextBox).Name)
      End Sub
    
      Private Sub TextBox1_KeyDown(ByVal sender As Object, _
                                   ByVal e As System.Windows.Forms.KeyEventArgs _
                                         ) Handles TextBox1.KeyDown
    									 
        If e.KeyCode = Keys.Enter Then
          e.Handled = True
          MsgBox(DirectCast(sender, TextBox).Name)
        End If
      End Sub
    End Class


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Dienstag, 26. Januar 2010 21:48
    Moderator
  • Hallo Thorsten,
    besten Dank für die Informationen. folgender Code zeigt wie gewünscht den Namen der TextBox an.

     

    Private Sub Herein(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
       Dim tempCtrl As Control
       Dim tbName As String
       For Each tempCtrl In Me.Controls
          tbName = DirectCast(sender, TextBox).Name     ' DirectCast war mir bisher nicht bekannt
          MsgBox(
    DirectCast(sender, TextBox).Name)
          If tempCtrl.Name = "TextBox2" Then
             tbName = tempCtrl.Name
             Exit For
            ' Stop
             End If
       Next tempCtrl
       MessageBox.Show(
    "TextBox.Name: " & tbName)    ' warum squiggly lines bei tbName ??
    End Sub


    Bitte noch eine weitere Frage beantworten:
    wie lese ich den Namen einer Textbox auf From1 in die ich hereingehe 'Enter'


    und noch eine (fast schon peinliche) Frage:
    wie fange ich das Ereignis 'CR'' nach Eingabe eines Textes in eine TextBox ab ?

    Besten Dank für die Unterstützung
    und besten Gruß
    Peter

    Donnerstag, 28. Januar 2010 11:22
  • wie lese ich den Namen einer Textbox auf From1 in die ich hereingehe 'Enter'
    Ich denke das zielt darauf ab, was Du hier bereits als neue Frage formuliert hast, oder?
    wie fange ich das Ereignis 'CR'' nach Eingabe eines Textes in eine TextBox ab ?

    Wenn es um die Erkennung der Eingabetaste geht, hatte ich Dir da bereits mit der zweiten Variante ein Beispiel gegeben. Ansonsten bitte genauer formulieren, worauf Du hinaus möchtest.

    Btw. aus Deinem wilden Konstrukt werde ich nicht so ganz schlau. Die Schleife ist in der Variante nicht sinnvoll. Mit sender hast Du ja bereits die Referenz auf das Steuerelement und musst Dir das nicht erst aus der Auflistung heraussuchen. Wenn würde man hier auch nicht über den Namen gehen, sondern eher die Referenz prüfen:

    If sender Is TextBox2 Then ...


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Donnerstag, 28. Januar 2010 20:59
    Moderator
  • Hallo Thorsten,
    recht vielen Dank für die Rückfragen.

    in Excel und Access läuft bereits mein technischer Rechner, den ich mittels Visual Basic gern als EXE.-file umbauen möchte. Ich hoffe überhaupt durch VB in Zukunft variabler zu sein.

    Mein Form1 enthält insgesamt 32 TextBoxes, davon sind 8 TextBoxes veränderbare Eingaben, der Rest sind Rechen-Ergebnisse.

    Um nicht jede einzelne TextBox auf das Ereignis 'Enter' abfragen zu müssen und dadurch viel Code zu produzieren,
    suche ich eine elegantere Methode und möchte den  'Namen' der jeweils durch entweder Tab-Taste oder 'Enter' angewählten TextBox (ControlType) ermitteln.

    Daher meine Bitte: wie frage ich den  .Namen einer angewählten TextBox ab ?
    Die Eigenschaft 'TextBox.Name' ist mit meiner Frage  n i c h t  gemeint !

    Danke, auch für die bisherige Geduld.

    Viele Grüße
    Peter


    Wie ich jetzt feststelle, sind obige Fragen mit den bereits gegebenen Antwort-Vorschlägen aus dem Forum bereits beantwortet worden. Herzlichen Dank für Eure Mühe.

    Beste Grüße
    Peter

    Freitag, 29. Januar 2010 14:47