Vb.net 通过在窗体上单击鼠标设置自定义控件的自定义属性(在设计模式下)

Vb.net 通过在窗体上单击鼠标设置自定义控件的自定义属性(在设计模式下),vb.net,forms,mouse,point,custom-properties,Vb.net,Forms,Mouse,Point,Custom Properties,我的控件有一个列表作为属性,在构造该控件时需要设置该属性。单个点必须从鼠标单击表单中获取,并且必须在Visual Studio的设计模式中进行 现在我的想法是在创建控件时打开一个新表单,该控件将复制原始表单,在新表单上我可以单击一点,注册点,将它们添加到列表属性,完成后关闭新表单。但我似乎无法将原始表单属性应用于新表单,我猜这是因为它在运行时不会发生 这就是我到目前为止所拥有的(我知道这并不多,是关于原则): 创建控件时显示新窗体: Public Sub New() Initia

我的控件有一个
列表
作为属性,在构造该控件时需要设置该属性。单个
必须从鼠标单击表单中获取,并且必须在Visual Studio的设计模式中进行

现在我的想法是在创建控件时打开一个新表单,该控件将复制原始表单,在新表单上我可以单击一点,注册点,将它们添加到列表属性,完成后关闭新表单。但我似乎无法将原始表单属性应用于新表单,我猜这是因为它在运行时不会发生

这就是我到目前为止所拥有的(我知道这并不多,是关于原则):

创建控件时显示新窗体:

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

在新表单上看不到更新的高度、宽度或背景颜色。。。有什么想法吗?

只是为了文档的缘故:

看来我解决了我的问题。我尝试了许多不同的方法,但我相信在
控件的
加载事件中创建新的
表单
最终解决了这个问题。
Refresh()
方法也有帮助

这是工作代码。对于控制:

Private Sub myControl_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim myForm As Form = Me.FindForm()
        Dim controlInputForm As New myControlInputForm(myForm)
        controlInputForm.Show()
End Sub
对于新表单类:

Public Class myControlInputForm

        Private additionlHeight As Integer = 50
        Private sourceForm As Form

        Public Sub New(sourceForm As Form)
            InitializeComponent()

            Me.sourceForm = sourceForm

            Me.Height = Me.sourceForm.Height + additionlHeight
            Me.Width = Me.sourceForm.Width
            Me.BackColor = Me.sourceForm.BackColor

            Me.Refresh()
        End Sub 
End Class

编辑:键入错误。

设置高度、宽度和背景色后,请尝试
Me.Refresh()
。如果这仍然不起作用,请添加
Application.DoEvents()
。或者在SoruceForm中添加一个类变量
ScrSource
,并在构造函数中进行设置。但是,与其调整构造函数中的属性,不如在SoruceForm的
Load
事件中设置高度、宽度和背景色。如果您正确定义了
列表(点)
属性,VS/IDE将为您启动集合编辑器。@Alex B.已完成所有建议,但仍然不起作用。@对不起,我不知道两者之间有什么区别。它确实向我显示了集合编辑器,但该编辑器并没有完成我需要的功能(每个鼠标点击注册点)。无论如何,谢谢你的帮助!