【问题标题】:How to access a function from an outside class in VB.NET如何从 VB.NET 中的外部类访问函数
【发布时间】:2016-06-28 06:12:43
【问题描述】:

我正在尝试从另一个类访问属于类 frmamain 的函数。请谁能告诉我我必须如何实现这一目标?我是 VB.NET 的新手。提前致谢。

代码抛出如下错误

“ConvertImagerBnW() 未声明。由于其保护级别,它可能无法访问”

class frmamain
Public Function ConvertImagerBnW()

    Try
        Dim img As Bitmap = New Bitmap((Image.FromFile("D:\\imgnam.jpg")))
        ''Dim img As Bitmap = New Bitmap(ImageBox1.Image)
        Dim c As Color
        Dim i As Integer = 0
        Do While (i < img.Width)
            Dim j As Integer = 0
            Do While (j < img.Height)
                c = img.GetPixel(i, j)
                Dim r As Integer = 0
                r = Convert.ToInt16(c.R)
                Dim g As Integer = 0
                g = Convert.ToInt16(c.G)
                Dim b As Integer = 0
                b = Convert.ToInt16(c.B)
                Dim ans As Integer = ((r _
                            + (g + b)) _
                            / 3)
                If (ans > 128) Then
                    r = 255
                    g = 255
                    b = 255
                Else
                    r = 0
                    g = 0
                    b = 0
                End If
                c = Color.FromArgb(r, g, b)
                img.SetPixel(i, j, c)
                j = (j + 1)
            Loop
            i = (i + 1)
        Loop
        ''Image<Gray, Byte> normalizedimg = new Image<Gray, Byte>(img);
        img.Save("D:\\imgnamNew.jpg")
        Dim Bmp1 As New Image(Of Bgr, [Byte])("D:\\imgnamNew.jpg")
        ImageFrame = Bmp1
        ''ImageBox1.Image = ImageFrame
        ''ImageBox1.Image.Save("D:\\imgnamNew.jpg")
        '' MessageBox.Show("SUCESSFULLY DONE")
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

End Function
end class


Module UseThread
    Sub newthread()
      ConvertImagerBnW()
    End Sub
End Module

【问题讨论】:

  • 公开方法的访问......
  • “我是 VB.Net 的新手” 我们需要看看你到目前为止写了什么......看起来问题不是与 .net 相关,但与 SoftDevel...
  • 是的,我做了同样的改变,但不起作用

标签: vb.net function access-specifier


【解决方案1】:

ConvertImagerBnWfrmamain 类的成员,因此您必须在该类的实例上实际调用它。这个:

Module UseThread
    Sub newthread()
      ConvertImagerBnW()
    End Sub
End Module

frmamain 一无所知。最简单的是,您需要执行以下操作:

Module UseThread
    Sub newthread()
      frmamain.ConvertImagerBnW()
    End Sub
End Module

这将在frmamain 的默认实例上调用该方法,假设它是一个表单。如果它不是默认实例或不是表单,那么您需要在某处访问实例表单。可能看起来像这样:

Module UseThread
    Sub newthread()
      Dim obj As New frmamain

      obj.ConvertImagerBnW()
    End Sub
End Module

如果您想在现有实例而不是新实例上调用该方法,那么您必须从某个地方获取对该实例的引用。具体如何做取决于项目的具体情况。

【讨论】:

  • 感谢大家回复我,它有效。 @jmcilhinney
猜你喜欢
  • 1970-01-01
  • 2013-02-23
  • 2011-12-29
  • 1970-01-01
  • 2017-04-11
  • 2021-06-11
  • 2014-12-29
  • 2011-01-02
相关资源
最近更新 更多