2016-06-01 33 views
-2

我基本上为我的一个应用程序编写自定义的错误记录表单,因为用户不能被信任向我报告错误。使用表单名称的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 

回答

0

我发布了同样的解决方案,以类似的问题。试试这个:

Dim frm = Application.OpenForms.Item(dt)