0

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

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

在新表单上看不到更新的高度、宽度或背景颜色……知道吗?

4

1 回答 1

0

只是为了文档的缘故:

看起来我设法解决了我的问题。我尝试了许多不同的事情,但我相信创造新事物最终解决Form了它。该方法也有帮助。Load eventcontrolRefresh()

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

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

对于新的 Form 类:

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

编辑:输入错误。

于 2016-04-15T09:19:02.253 回答