代码之家  ›  专栏  ›  技术社区  ›  Skitzafreak

添加到Windows窗体的控件的位置已关闭

  •  0
  • Skitzafreak  · 技术社区  · 6 年前

    Width = 250, Height = 250 X = 25, Y = 25 具有 Width = 100 .

    表单的加载方法具有以下代码:

    Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim TextBox2 As New TextBox With {
            .Location = New Point(25,25),
            .Visible = True,
            .Width = 100
        }
        Me.Controls.Add(TextBox2)
    End Sub
    

    事实上 如果我在表单上放置的文本框以非编程方式显示在放置它的位置,并且我在Load方法中创建的文本框显示在它应该偏移的位置,就会发生这种情况。

    为什么会这样?我如何将元素添加到表单中有问题吗?

    Offset Text Boxes

    编辑2:

    澄清一下,我并不是想弄清楚如何将一个表单元素放置在另一个表单元素之上。我想弄明白为什么我在放置 任何 在尝试以编程方式添加元素时位于特定位置的元素。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Simo    6 年前

    如果要以编程方式创建新文本框,这可能有助于您:

    Dim TextBox1 As New TextBox
        With TextBox1
            .Location = New Point(10, 10)
            .Name = "TextBox1"
            .Text = " "
            .Visible = True
        End With
     AddHandler TextBox1.Click, AddressOf TextBox1_Click
     Me.Controls.Add(TextBox1)
    

    .Click 事件,我们必须声明处理它的函数:

    Private Sub TextBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        MsgBox("You clicked Me!")
    End Sub
    

    例如,如果窗体上有另一个文本框 TextBox1 我们可以使用它在orther中的位置创建一个新的文本框,如下所示:

    Dim newTextBox As New TextBox
        With newTextBox
            .Location = New Point(TextBox1.Location.X, TextBox1.Location.Y + newTextBox.Height + 10)
            .Name = "newTextBox"
            .Visible = True
        End With
    AddHandler newTextBox.Click, AddressOf newTextBox_Click
    Me.Controls.Add(newTextBox)
    

    评论:

    记住重命名处理 。单击 例如:

     AddHandler newTextBox.Click, AddressOf newTextBox_Click
    

    Private Sub newTextBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        MsgBox("You clicked Me!")
    End Sub
    

    events 可以在vb.net中处理。 TextBox.Click

    推荐文章