vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Verschiedenes / Sonstiges   |   VB-Versionen: VB2005, VB200818.11.09
Aufrufende Prozedur aus einer Sub/Function heraus ermitteln

Mit Hilfe der StackTrace-Klasse lässt sich sehr einfach die Prozedur ermitteln, die eine andere Prozedur/Funktion aufgerufen hat.

Autor:   Dieter OtterBewertung:  Views:  17.782 
www.tools4vb.deSystem:  Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Heute zeigen wir Ihnen, wie Sie "herausfinden" können, von welcher Prozedur heraus die aktuelle Prozedur/Funktion aufgerufen wurde.

Imports System.Reflection
''' <summary>
''' Gibt den Namen der aufrufenden Prozedur zurück.
''' </summary>
Public Function GetCallingProc() As String
  Dim Trace As New StackTrace()
  Try
    Return Trace.GetFrame(2).GetMethod().Name
  Catch ex As Exception
    Return ""
  End Try
End Function

Anwendungsbeispiel:
Es gibt zwei TextBox-Elemente auf der Form, die im TextChanged-Event jeweils die gleiche Prozedur aufrufen. Innerhalb dieser Prozedur möchten Sie wissen, aus welchem TextBox_Changed Ereignis der Aufruf erfolgte:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles TextBox1.TextChanged
 
  Call Proc1()
End Sub
 
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles TextBox2.TextChanged
 
  Call Proc1()
End Sub
Sub Proc1()
  ' Aus welcher Prozedur heraus wurde Proc1 aufgerufen?
  MsgBox(GetCallingProc())
End Sub



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2019 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.