我的代码:
在Form1(启动窗体)中点击按钮 Form6.ShowDialog(),显示Form6窗体
然后在Form6窗体中点击按钮 Form7.ShowDialog(),显示Form7窗体
然后在Form7窗体中点击按钮 Form6.close(),关闭Form6窗体,但是关闭不了Form6窗体,
怎么做呢
16 个解决方案
#1
form7跟form6是什么依赖关系?
#2
Form6,Form7 都是模态窗体
#3
form7跟form6是什么依赖关系?
没有依赖关系,就是在form6有一个按钮点击按钮 Form7.ShowDialog()
form7有一个按钮点击按钮 Form6.close
没有依赖关系,就是在form6有一个按钮点击按钮 Form7.ShowDialog()
form7有一个按钮点击按钮 Form6.close
#4
没有依赖关系,就是在form6有一个按钮点击按钮 Form7.ShowDialog()
form7有一个按钮点击按钮 Form6.close
我的目的是Form6是模态窗体,Form7也是模态窗体,点击Form6按钮显示Form7的同时关闭Form6
#5
能同时显示2个模态窗体?
#6
不是同时显示,form7以模态窗体显示后成为活动窗体,form6应该就不是了,然后我想把form6关闭
#7
两个都是模式化窗体 是无法实现你这样的效果的 ,如果要实现的你的效果,很简单,把Form7.ShowDialog() 改成f7.Show()就可以了
#8
模态窗体就是很难关闭,有时候方法灵有时候不灵,不知道为什么
#9
Form7.ShowDialog()
Me.Hide()
Me.Close()
Me.Hide()
Me.Close()
#10
如果要在Form7中关闭Form6,可申明一个全局变量Public Frm6 As Form;
启动Form6:
Frm6=New Form6
Frm6..ShowDialog()
Form7中的关闭方法:
Frm6.Hide()
Frm6.Close()
启动Form6:
Frm6=New Form6
Frm6..ShowDialog()
Form7中的关闭方法:
Frm6.Hide()
Frm6.Close()
#11
在form6的关闭事件中注册关闭form7的方法应该就可以了
#12
有时关闭Form6,但不一定要执行Form7的程序
#13
如果 form6 依赖 form6,那么 form6 就不要依赖 form7,否则这种纠结多了就使得系统的内耗成指数增长了。
先搞清楚依赖关系,然后按照依赖关系来设计。form7 应该采取“依赖倒置”原则来给宿主提供一个“点了关闭按钮”的事件通知,而它并不需要依赖任何宿主窗口。
#14
如果 form6 依赖 form6,那么 form6 就不要依赖 form7 --> 如果 form6 依赖 form7,那么 form7 就不要依赖 form6
事件是很基本的设计模式。你随便用一个现成的控件,都大量用到事件概念。不懂事件编程设计,基本上就等于有一半的编程知识没有学过。不懂事件,那么就会看上去“只知道一个大循环”去玩图控制什么东西,而不知道依赖是需要倒置的。
事件是很基本的设计模式。你随便用一个现成的控件,都大量用到事件概念。不懂事件编程设计,基本上就等于有一半的编程知识没有学过。不懂事件,那么就会看上去“只知道一个大循环”去玩图控制什么东西,而不知道依赖是需要倒置的。
#15
那当然不行了,你把有依存关系的上级窗口关掉那后面的代码还怎么执行
#16
form6 呼叫 form7 后 ,form6的线程 就应该会阻塞住。
form7的窗口未关闭时,form6的窗口不响应任何事件,包括close()
如果在非要做这种设计的时候,就不要用模态窗口了,可以用TOPMOST属性来达到目的。
form7的窗口未关闭时,form6的窗口不响应任何事件,包括close()
如果在非要做这种设计的时候,就不要用模态窗口了,可以用TOPMOST属性来达到目的。
#1
form7跟form6是什么依赖关系?
#2
Form6,Form7 都是模态窗体
#3
form7跟form6是什么依赖关系?
没有依赖关系,就是在form6有一个按钮点击按钮 Form7.ShowDialog()
form7有一个按钮点击按钮 Form6.close
没有依赖关系,就是在form6有一个按钮点击按钮 Form7.ShowDialog()
form7有一个按钮点击按钮 Form6.close
#4
没有依赖关系,就是在form6有一个按钮点击按钮 Form7.ShowDialog()
form7有一个按钮点击按钮 Form6.close
我的目的是Form6是模态窗体,Form7也是模态窗体,点击Form6按钮显示Form7的同时关闭Form6
#5
能同时显示2个模态窗体?
#6
不是同时显示,form7以模态窗体显示后成为活动窗体,form6应该就不是了,然后我想把form6关闭
#7
两个都是模式化窗体 是无法实现你这样的效果的 ,如果要实现的你的效果,很简单,把Form7.ShowDialog() 改成f7.Show()就可以了
#8
模态窗体就是很难关闭,有时候方法灵有时候不灵,不知道为什么
#9
Form7.ShowDialog()
Me.Hide()
Me.Close()
Me.Hide()
Me.Close()
#10
如果要在Form7中关闭Form6,可申明一个全局变量Public Frm6 As Form;
启动Form6:
Frm6=New Form6
Frm6..ShowDialog()
Form7中的关闭方法:
Frm6.Hide()
Frm6.Close()
启动Form6:
Frm6=New Form6
Frm6..ShowDialog()
Form7中的关闭方法:
Frm6.Hide()
Frm6.Close()
#11
在form6的关闭事件中注册关闭form7的方法应该就可以了
#12
有时关闭Form6,但不一定要执行Form7的程序
#13
如果 form6 依赖 form6,那么 form6 就不要依赖 form7,否则这种纠结多了就使得系统的内耗成指数增长了。
先搞清楚依赖关系,然后按照依赖关系来设计。form7 应该采取“依赖倒置”原则来给宿主提供一个“点了关闭按钮”的事件通知,而它并不需要依赖任何宿主窗口。
#14
如果 form6 依赖 form6,那么 form6 就不要依赖 form7 --> 如果 form6 依赖 form7,那么 form7 就不要依赖 form6
事件是很基本的设计模式。你随便用一个现成的控件,都大量用到事件概念。不懂事件编程设计,基本上就等于有一半的编程知识没有学过。不懂事件,那么就会看上去“只知道一个大循环”去玩图控制什么东西,而不知道依赖是需要倒置的。
事件是很基本的设计模式。你随便用一个现成的控件,都大量用到事件概念。不懂事件编程设计,基本上就等于有一半的编程知识没有学过。不懂事件,那么就会看上去“只知道一个大循环”去玩图控制什么东西,而不知道依赖是需要倒置的。
#15
那当然不行了,你把有依存关系的上级窗口关掉那后面的代码还怎么执行
#16
form6 呼叫 form7 后 ,form6的线程 就应该会阻塞住。
form7的窗口未关闭时,form6的窗口不响应任何事件,包括close()
如果在非要做这种设计的时候,就不要用模态窗口了,可以用TOPMOST属性来达到目的。
form7的窗口未关闭时,form6的窗口不响应任何事件,包括close()
如果在非要做这种设计的时候,就不要用模态窗口了,可以用TOPMOST属性来达到目的。