vb.net 窗体打开关闭

Locqi 2014-12-23 03:03:09
formA打开formB,formB打开formC,formC打开formD,formD打开formE,
formD打开formE的同时要把formA到formD的窗口全部关闭,这时只保留formE,应该如何实现?
...全文
961 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
d080800410 2015-03-09
  • 打赏
  • 举报
回复
楼上大神话 正解
pengwu666 2015-01-19
  • 打赏
  • 举报
回复
A是不能关闭的,不然整个程序都关闭了只能隐藏,其他的可以关闭
於黾 2015-01-19
  • 打赏
  • 举报
回复
A是主窗体,所以A关闭了,它下面开的子窗体也就全部关闭了(工程退出了) 其实你完全可以这样 A.Close(); Application.Run(E.Show());//将窗体E以一个新进程的方式打开
我爱吃锅魁 2015-01-06
  • 打赏
  • 举报
回复
用vs2010 实验了下 只能使用form.hide 如果是使用form.close的话 不行的
qianghe1314 2014-12-24
  • 打赏
  • 举报
回复
引用 4 楼 kxyzjm62 的回复:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form5.Show() Form1.Close() Form2.Close() Form3.Close() Me.Close() End Sub 在项目属性里面设置关机模式为“当最后一个窗体关闭时”
我用的是vs2005,直接关闭主窗口的话,子窗口也会相继关闭的。网上搜的还有unload什么的,我这里根本就没有这些方法,难道这些是vs版本的问题。网上还搜的有主窗口关闭,子窗口不关闭的,难道也是版本的问题?
qianghe1314 2014-12-24
  • 打赏
  • 举报
回复
昨天自己也研究了一段时间,有点晚,希望能帮到你吧
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Form2.Show()
    End Sub

End Class
Public Class Form2
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim f As Form3 = New Form3()
        f.Show()
        'Form3 is opened
        Form1.Hide()
        Me.Hide()
    End Sub
End Class
Public Class Form3

    Private Sub Form3_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        Form1.Dispose()
        Form2.Dispose()
    End Sub
End Class
以上是示例代码。我只建了三个窗口。 formE打开时,formA到formD全部隐藏,formE关闭时,所有画面在一起关闭。
kxyzjm62 2014-12-23
  • 打赏
  • 举报
回复
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form5.Show() Form1.Close() Form2.Close() Form3.Close() Me.Close() End Sub 在项目属性里面设置关机模式为“当最后一个窗体关闭时”
於黾 2014-12-23
  • 打赏
  • 举报
回复
打开一个就直接关闭上一个不好吗,为什么要这样
Locqi 2014-12-23
  • 打赏
  • 举报
回复
在线等!!!!!!!!!!!!!!!!!!
Locqi 2014-12-23
  • 打赏
  • 举报
回复
各位大神请支招
在码农的生活中,很多级码农都有这样的经历,会被一个小小的技术问题拦住,然后进度跟不上了,被老板XXXX一大通了。心情不爽了。 好吧,这个曾经是我遇到拦路虎之一。但事实上不是什么大技术。技术就是一层纸,破了就破了。 这是一个关于如何跨窗体操作控件或过程的一个例子。比如,你想用窗体A的按键来执行窗体B的文本框变色。 Imports System Imports System.Threading Imports System.Text Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load CheckForIllegalCrossThreadCalls = False '不写这行,会出错,不允许线程的数据写到TextBox1.Text 中去。 Form2.Show() End Sub Private Sub form1_FormClosing(sender As Object, e As EventArgs) Handles Me.FormClosing ' If runThread.IsAlive = True Then runThread.Abort() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '用的是委托方式 Me.Invoke(New MethodInvoker(AddressOf THREAD2)) End Sub Private Sub THREAD2() Static j As Integer j = j + 1 TextBox1.Text = " 这是 [线程] 操作" & vbCrLf & _ " Button2被点了: " & j & " 次" & vbCrLf & "要求是from2.textbox.text= textbox1.text 。[问题]但为什么不能成功显示呢?" End Sub Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged Form2.TextBox1.Text = TextBox1.Text End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Static j As Integer j = j + 1 TextBox1.Text = " 这是 [非线程] 操作" & vbCrLf & _ "Button3 点击了: " & j & " 次" & vbCrLf & _ "要求是from2.textbox.text= textbox1.text, 可以成功显示,这个是对的。" End Sub End Class

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧