コントロールの作成時に設定する必要があるプロパティとして、鉱山のコントロールにはList<Point>
というプロパティがあります。個々のPoint
は、フォームのマウスクリックから取られなければならず、Visual StudioのDesignmodeで発生する必要があります。フォームをマウスでクリックしてカスタムコントロールのカスタムプロパティを設定する(DesignModeで)
私の考えは、元のフォームを複製するコントロールが作成されるたびに新しいフォームを開き、新しいフォーム上で少しクリックしてポイントを登録し、それらをリストプロパティに追加して新しい私が終わったときに形を整える。しかし、元のFormsプロパティを新しいプロパティに適用できないようで、実行時に発生しないためです。
この
は、私がこれまで持っているものである(私はそれがその原則については、あまりないです知っている):Public Sub New()
InitializeComponent()
Dim myForm As Form = Me.FindForm()
Dim newForm As New newForm(myForm)
scrInput.Show()
End Sub
新しいフォーム:
コントロールが作成された新しいフォームを表示します:
Public Class SourceForm
Private additionlHeight As Integer = 50
Public Sub New(ScrSource As Form)
InitializeComponent()
Me.Height = ScrSource.Height + additionlHeight
Me.Width = ScrSource.Width
Me.BackColor = ScrSource.BackColor
End Sub
End Class
新しいフォームに表示される更新された高さ、幅、または背景色はありません。
Height、Width、BackColorを設定してから、Me.Refresh()を試してください。これでも動作しない場合は、 'Application.DoEvents()'を追加してください。あるいは、SoruceFormにクラス変数 'ScrSource'を追加し、それをコンストラクタに設定します。しかし、constrcutorのプロパティを調整する代わりに、SoruceFormの 'Load'イベントでHeight、Width、およびBackColorを設定します。 –
まず、カスタムコントロールではなくUserControlのように見えます。 'List(Of Point)'プロパティを適切に定義すると、VS/IDEはコレクションエディタを起動します。 – Plutonix
@アレックスB.あなたが示唆したすべてをしましたが、それでも動作しません。 @ Plutonix申し訳ありませんが、私は2つの違いがあることを認識していませんでした。実際にコレクションエディタを表示しますが、そのエディタでは必要なもの(マウスポインタごとのポイントを登録する)が得られません。 とにかくお世話になりました! – ziggystardust