通过鼠标单击Form(在DesignMode中)设置自定义控件的自定义属性

时间:2016-04-12 09:35:49

标签: vb.net forms mouse point custom-properties

我的控件有一个List<Point>属性,需要在构造该控件时设置。单个Point必须从鼠标单击窗体中获取,并且必须在Visual Studio的Designmode中进行。

现在我的想法是每当创建一个复制原始表单的控件时打开一个新表单,在新表单上我可以点击一下,注册Points,将它们添加到List属性并关闭新表单当我完成了。但我似乎无法将原始的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

新表格上没有更新的高度,宽度或背景颜色......有什么想法吗?

1 个答案:

答案 0 :(得分:0)

仅出于文档的原因:

看起来我设法解决了我的问题。我尝试了很多不同的东西,但我相信在Form的{​​{1}}中创建新的Load event最终解决了它。 control方法也有帮助。

所以这是工作代码。对于控件:

Refresh()

对于新的Form类:

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

编辑:输入错误。