【发布时间】:2017-05-23 04:45:39
【问题描述】:
详细说明标题:
我目前有 2 个表格。
- Form1 = 主窗体
- Form2 = 使用
ShowDialog()链接到 Form1
Form1 有 3 个图片框和一个按钮
Form2 是一个简单的可填写表单,我想要它做的是当我单击 Form2 上的 OK 按钮时,我将 form2 设置为关闭但我需要隐藏 Form1 上的图片框和按钮,即让它显示为空白.
我不太确定自己做错了什么。
我在 Form2.vba 中添加了图片框作为公共声明
Public Class CreateNewProject
'declare Form1 objects
Public Img_Documentation As PictureBox
Public Img_OnlineResources As PictureBox
Public Img_Tutorials As PictureBox
我将.hide() 添加到按钮子中的每个图片框
Private Sub ButtonOK_Click(sender As Object, e As EventArgs) Handles ButtonOK.Click
If TextNewProjectName.Text = "" And TextSaveFileLocation.Text = "" Then
MessageBox.Show("Please enter a " & LabelProjectFileName.Text & vbCrLf & vbCrLf & "Please choose a " & LabelSaveFileLocation.Text, "Warning")
Else
'Close current form
Me.Close()
'Close objects on Form1
Img_Documentation.Hide()
Img_OnlineResources.Hide()
Img_Tutorials.Hide()
End If
End Sub
或者,我尝试创建一个新的空白表单 (form3),在关闭 form2 后打开该表单,效果很好,但我无法使用 Form1.close() 关闭 Form1。
Me.Close()
Form3.Show()
Form1.close()
【问题讨论】:
-
Form2中应该没有引用Form1的代码。当Form1调用ShowDialog时,它会阻塞直到Form2关闭。这意味着您只需添加代码以在ShowDialog调用之后隐藏您的控件。如果Form1需要来自Form2的数据来确切知道要做什么,那么您在Form2中添加公共属性以公开该数据,然后Form1检索它。Form1为自己工作,Form2甚至不知道Form1的存在。