VB.NET使用表单名称返回表单对象

时间:2016-06-01 11:54:40

标签: vb.net

我基本上为我的某个应用程序编写了自定义错误记录表单,因为无法信任用户向我报告错误。

我使用' MethodBase'获取表单名称。对象,然后获取DeclaringType名称。

    Dim st As StackTrace = New StackTrace()
    Dim sf As StackFrame = st.GetFrame(1)
    Dim mb As MethodBase = sf.GetMethod()
    Dim dt As String = mb.DeclaringType.Name

我如何使用它来获取表单对象,以便我可以将其传递给我的截图方法'截图引用的特定表单。

Public Sub SaveAsImage(frm As Form)

    'Dim fileName As String = "sth.png"
    'define fileName

    Dim format As ImageFormat = ImageFormat.Png
    Dim image = New Bitmap(frm.Width, frm.Height)
    Using g As Graphics = Graphics.FromImage(image)
        g.CopyFromScreen(frm.Location, New Point(0, 0), frm.Size)
    End Using
    image.Save(_LogPath & Date.Now.ToString("ddMMyyyy") & ".png", format)

End Sub

1 个答案:

答案 0 :(得分:0)

我在同样的问题上发布了相同的解决方案。试试这个:

Dim frm = Application.OpenForms.Item(dt)