この質問は VB2008 Express に関するものです。
構造化プロパティを使用するユーザー コントロールを作成しています。コントロールとプロジェクト全体の構造は同じです。問題は、メイン プロジェクト内でこのプロパティに場所を割り当てようとすると、「非共有メンバーへの参照にはオブジェクト参照が必要です」という結果になることです。
それが何を意味するのか、どのように対処するのか、私にはわかりません。Microsoft のヘルプでは、「非共有メンバーを参照しているため、オブジェクト参照が必要です。」
Microsoft さん、エラーの説明を読んだので、シズニットはありません...しかし、それはどういう意味ですか? (私は VB6 から来ました。私はそこからの例で独学しているので、気楽に行ってください。)
もちろん、「Street」「City」など、構造の個々の部分を独自のプロパティとして割り当てることもできますが、ユーザーコントロールによって一度に検証されるため、1 つのステップで行うことを好む理由があります。割り当て時に。
ユーザーコントロールとメインプロジェクトが互いに「場所」を渡すのに役立つものはありますか?
Public Structure Place
Public PlaceName As String
Public Street As String
Public Apt As String
Public City As String
Public State As String
Public Zip As String
Public VerifiedStatus As Integer
Public Lat As Single
Public Lng As Single
End Structure
Public Property CurrentPlace() As Place
Get
Dim ThisPlace As New Place
ThisPlace.Street = Trim(Me.txtStreet.Text)
ThisPlace.Apt = Trim(txtAptNo.Text)
ThisPlace.City = Trim(txtCity.Text)
ThisPlace.State = Trim(lblState.Text)
ThisPlace.Zip = Trim(txtZip.Text)
ThisPlace.Lat = MyLat
ThisPlace.Lng = MyLng
ThisPlace.PlaceName = ""
'This control doesn't take placenames but they exist in the structure.
ThisPlace.VerifiedStatus = MyVerifiedStatus
Return ThisPlace
End Get
Set(ByVal value As Place)
AsLoadedApt = Trim(value.Apt)
AsLoadedCity = Trim(value.City)
AsLoadedLat = value.Lat
AsLoadedLng = value.Lng
AsLoadedState = Trim(value.State)
AsLoadedStreet = Trim(value.Street)
AsLoadedVerifiedStatus = value.VerifiedStatus
AsLoadedZip = Trim(value.Zip)
txtStreet.Text = AsLoadedStreet
txtAptNo.Text = AsLoadedApt
txtCity.Text = AsLoadedCity
lblState.Text = AsLoadedState
txtZip.Text = AsLoadedState
MyVerifiedStatus = AsLoadedVerifiedStatus
MyLat = AsLoadedLat
MyLng = AsLoadedLng
Call ShowStatus()
End Set
End Property