2016-06-28 65 views
0

我試圖從另一個類訪問屬於類frmamain的函數。請誰能告訴我我該如何實現這一目標?我是VB.NET新手。提前致謝。如何在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 
+0

使公共方法的訪問... –

+0

***「我是VB.Net中的新手」***我們需要查看目前爲止所寫的內容......看起來問題不是相關的與.net,但與SoftDevel ... –

+0

是的,我做了同樣的更改,但沒有工作 – NikRock

回答

0

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 

如果你想打電話現有的實例,而不是一個新的實例方法,那麼你就必須從某處得到該實例的引用。您的具體做法取決於您項目的具體情況。

+0

感謝所有的答覆我的作品。 @jmcilhinney – NikRock

相關問題