2011-12-06 85 views
0

我是vb.net的新手,我只想问你一些问题。 我想创建一个简单的程序,我试图用运行时设计来做到这一点。运行时设计

enter image description here

这种形式,当你点击的文字说明(文本) “显示另一种形式的” Button1的,另一种形式将这段代码创建:

Public Class Form1 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim NewForm As New Form 
     Dim btnCancel As New Button 

     NewForm.StartPosition = FormStartPosition.CenterScreen 
     NewForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
     NewForm.BackColor = Color.WhiteSmoke 
     NewForm.Size = New Size(400, 200) 
     NewForm.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable 


     btnCancel.Text = "Cancel" 
     btnCancel.Size = New Size(150, 50) 
     btnCancel.Location = New Point(50, 50) 

     NewForm.Controls.Add(btnCancel) 
     NewForm.ShowDialog() 

     AddHandler btnCancel.Click, AddressOf CancelClick 
    End Sub 

    Public Sub cancelclick(ByVal sender As Object, ByVal e As EventArgs) 
     Dim x As String = MessageBox.Show("Exit", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) 
     If x = vbYes Then End 
    End Sub 
End Class 

enter image description here

如何当我点击取消按钮时退出我创建的表单。我提供的代码不起作用。请帮助我。由于

+0

我试图用'MouseEventArgs'替换'EventArgs',但它仍然不起作用。 – aer

+0

*“我提供的代码不起作用。”* - 最好也描述它不工作的方式,以及它以什么方式工作。 –

回答

4

尝试显示对话框

NewForm.Controls.Add(btnCancel)
的AddHandler btnCancel.Click,AddressOf CancelClick
NewForm.ShowDialog()

+0

...感谢的人。有效!你能告诉我什么是AddHandler和AddressOf?我一直试图谷歌的答案,但我找不到一个。 – aer

+0

+1,很好的答案。 –

+0

@aerohn AddHandler用于附加任何事件和AddressOf函数,该函数将在引发attched事件时调用。 –

0

在连接前处理程序代码的代码将AddressOf CancelClick更改为AddressOf cancelclick

编辑:

将NewForm.ShowDialog()更改为NewForm.Show(),并将代码更改为下面的代码,然后肯定会起作用。

Public NewForm As Form 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     NewForm = New Form 
     Dim btnCancel As New Button 

     NewForm.StartPosition = FormStartPosition.CenterScreen 
     NewForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
     NewForm.BackColor = Color.WhiteSmoke 
     NewForm.Size = New Size(400, 200) 
     NewForm.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable 


     btnCancel.Text = "Cancel" 
     btnCancel.Size = New Size(150, 50) 
     btnCancel.Location = New Point(50, 50) 

     NewForm.Controls.Add(btnCancel) 
     AddHandler btnCancel.Click, AddressOf cancelclick 

     NewForm.Show() 

    End Sub 

    Public Sub cancelclick(ByVal sender As Object, ByVal e As System.EventArgs) 
     Dim x As String = MessageBox.Show("Exit", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) 
     If x = vbYes Then End 
    End Sub 
+0

我想显示模态表单,这就是为什么我把它设置为'.ShowDialog()':)) – aer