0

我对visual basic很陌生,我有这个东西在吹嘘我。我的 Windows 应用程序中有两个表单,用于在第一个表单中选择一些属性,然后单击继续,然后加载第二个表单。我已经编写了一些代码,以便在根据第一个表单上检查的单选按钮类型加载第二个表单时执行。

下面是第二种形式的 Load 事件的代码。

         `If Selectdisplay.rdbtnmps.Checked = True Then
        LoadFromExcelForRDIToolStripMenuItem.Visible = False
        LoadFromExcelForTIToolStripMenuItem.Visible = False
        Label1.Text = "Prediction of MPS in SINTER PLANT 4"
        Chart1.Series(2).Enabled = False
        Chart1.Series(3).Enabled = False
        Chart1.Series(4).Enabled = False
        Chart1.Series(5).Enabled = False
    ElseIf Selectdisplay.rdbtnti.Checked = True Then
        LoadFromExcelToolStripMenuItem1.Visible = False
        LoadFromExcelForRDIToolStripMenuItem.Visible = False
        Label1.Text = "Prediction of TI in SINTER PLANT 4"
        Chart1.Series(0).Enabled = False
        Chart1.Series(1).Enabled = False
        Chart1.Series(4).Enabled = False
        Chart1.Series(5).Enabled = False` 

“选择显示”是第一种形式。所以现在当我退出第二个表单并返回第一个表单时,我在第一次加载第二个表单时设置的属性将被保留,我希望它们重置换句话说我想在我完全销毁第二个表单时退出它,以便我可以通过检查第一种形式的不同单选按钮来重新加载它。

感谢您阅读提前感谢。

4

3 回答 3

2

您在评论中说第二种形式显示为模态对话框。我更喜欢form1:

Sub Button1_Click(sender as Object, e as EventArgs) Handles Button1.Click
    Using frm2 = new Form2()
        frm2.ShowDialog()
    End Using
End Sub

另外,在 form2 中,我会避​​免If Selectdisplay.rdbtnti.Checked = True Then类型调用。不要通过静态名称引用表单。而是使用实际参考。所以在form2中,我会有:

Public SelectdisplayForm as Form

修改Button1_Click code

Sub Button1_Click(sender as Object, e as EventArgs) Handles Button1.Click
    Using frm2 = new Form2()

        ' --- NOTE THIS LINE ---
        frm2.SelectdisplayForm = me

        frm2.ShowDialog()
    End Using
End Sub

然后在 form2 中,每当您想引用 form1 中的任何内容时,请使用本地字段(变量)而不是表单类名。

                 |--|
 If SelectdisplayForm.rdbtnmps.Checked = True Then
                 |--|
     do something..
                     |--|
 ElseIf SelectdisplayForm.rdbtnti.Checked = True Then
                     |--|

     do other thing..

 End if   
于 2013-10-03T10:07:46.607 回答
0

您可以尝试加入该FormClosing事件(此处的文档:http: //msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosing.aspx)。

所以在你的第二种形式中添加一个像这样的处理程序:

Protected Sub SecondForm_FormClosing(sender As Object, e As EventArgs) Handles Me.FormClosing

    'add code to change selected radio buttons etc.

End Sub

此事件处理程序将在表单关闭时被调用。您也可以FormClosed以几乎相同的方式使用该事件(文档:http: //msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosed.aspx)。

于 2013-10-03T08:54:06.343 回答
0

简单的方法就是在访问文档之前调用 form.Close() 。

Selectdisplay.Close()
If Selectdisplay.rdbtnmps.Checked = True Then
....
ElseIf Selectdisplay.rdbtnti.Checked = True Then
....
end if
于 2013-10-03T08:56:41.787 回答