저는 VB.net에서 새롭고 여전히 배우고 있습니다. 두 개의 프로젝트, Windows Application Forms 프로젝트 및 클래스 라이브러리 프로젝트로 솔루션을 만들려고합니다. System.Windows.Forms 클래스를 라이브러리 프로젝트에 추가하려고 할 때까지 모든 것이 잘 진행됩니다. 그 코드는 나에게 오류를 줄 메시지 클래스클래스 라이브러리의 Sub에 대한 인수로 TextBox 컨트롤을 가져 오는 방법은 무엇입니까?
Namespace MyLibraries
Public Class Message
Public Property box As System.Windows.Forms.TextBox
Public Property msg As String
Sub New(ByRef txtBox As System.Windows.Forms.TextBox, Optional ByVal txtMsg As String = "")
msg = txtMsg
End Sub
Public Sub showMessage()
txtBox.Text = txtMsg
End Sub
End Class
End Namespace
:
Windows 응용 프로그램 폼 프로젝트에서: MainForm 클래스 클래스 라이브러리 프로젝트에서
Public Class MainForm
Private Sub btnMessage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMessage.Click
Dim msg As New Message(txtMessage, "Testing")
msg.showMessage()
End Sub
End Class
내 코드는 다음과 같다 :
Could not load type 'MyLibraries.Message' from assembly 'MyLibraries, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
메시지 클래스를 주 프로젝트에 넣거나 해당 클래스의 상자 속성을 제거하면 프로그램이 정상적으로 작동합니다. 하지만, 내가 달성하고자하는 것은 Forms 나 Controls를 인수로 취할 수있는 클래스를 만들고 나중에이 클래스를 라이브러리에 저장하여 나중에 다른 프로젝트에서 사용할 수 있도록하는 것입니다.
내가 찾은 제안의 대부분은 내가 이해할 수없는 무엇이든지간에 어셈블리에 대해 말하고 있으며 제안을 단계별로 따르면서도 작동 할 수는 없습니다.
아마도 일부 숙련 된 프로그래머가이 문제를 이해하기 쉽게 만들 수 있습니까? 누군가가 저에게 의회 서명 또는 기본 개념을 제공 할 수 있다면 고마워요.
(내 나쁜 영어. 영어 죄송합니다 내 모국어가 아닌.)UPDATE JRLambert 말한 내가했던
. 두 개의 프로젝트로 새로운 솔루션을 만들고 거기에 모든 코드를 복사했습니다. 그리고 나서 Olivier Jacot-Descombes가 말한 것과 같은 각 프로젝트에 대한 언급을 추가합니다. 감사합니다. 제 프로그램이 작동합니다. 그러나 나는 아직도 무엇이 잘못되었고 그것이 일어나는 지 이해하지 못한다. 누구든지 간단한 설명을 줄 수 있습니까?
InnerException이 있습니까? – SLaks
No TypeLoadException –
클래스 라이브러리의 TextBox로 무엇을 할 것인가? 왜 Text 속성을 전달하지 않는가? –