2016-06-28 11 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

ConvertImagerBnWのでfrmamainクラスのメンバーでありますそのクラスのインスタンスで実際に呼び出す必要があります。これは:

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

frmamainについては何も知らない。それは、フォームだと仮定して、frmamainの既定のインスタンス上でそのメソッドを呼び出します

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

:それは最も単純だ時、あなたはこのような何かをする必要があります。それがデフォルトのインスタンスでない場合、またはフォームではない場合は、インスタンスフォームにどこかでアクセスする必要があります。それは次のようになります。

Module UseThread 
    Sub newthread() 
     Dim obj As New frmamain 

     obj.ConvertImagerBnW() 
    End Sub 
End Module 

既存のインスタンス上のメソッドではなく、新しいインスタンスを呼び出したい場合、あなたはどこからそのインスタンスへの参照を取得する必要があると思います。正確にどのように行うかは、プロジェクトの詳細によって異なります。

+0

私に返信いただきありがとうございます。 @jmcilhinney – NikRock

関連する問題