你对这个回答的评价是
vb中的Mdi子窗体不能正确读取另外一个子窗体的visible属性
一旦读取,无论被读取的窗体是不是可见的,都会顯示出来并返回True
Form1中有一个按钮,代码如下
End Sub这时无论Form2如果是可见的,则直接返回True,问题在于如果此时Form2是不可见的,则会被显示出来再返回True不知道有什麼方法解决,麻烦大家看看,谢谢
又试了一下 好像不光是读取Visible 属性时会这样,其它属性也会
使用窗体属性=如果窗体未加裁,先自动加裁窗体然後再使用它的属性。
判断form2是否已经加裁可以用以下方法:
判断窗体是否可见是需要用到visible属性,不过要先判断该窗体是否已加载,所以要用到两步.
那为什么非mdi窗体就没有这种问题?
谢谢,的确可以这样,但是也只能判断窗体是否已经加载,而不能判断已加载窗体的可见性
那为什么非mdi窗体就没有这种问题?
这要看你是怎么打开的窗体
那么需要判断的是Frm,如果这种方式打开多次
MSDN: 当在代码中引用一个未装载窗体的属性时该窗体自动被装载但不自动成为可视窗体,除非 MDIChild 属性被设置为 True
由于所有子窗体在装载时都可视,对 Caption 属性的引用将装载该窗体并使其可视
非MDI窗體也有这种问题,只不过它不让你直接看到罢了
当你调用“窗体名称.属性”的时候,程序会做两件事第一件事,检查“窗体名称”这個对象是否存在不存在时创建这个对象;第二件事,对象存在以后再调用对象的属性
只要设置了MDIChild属性,不存在你说的情况以下是Form1中嘚测试代码:
呮要有这个程序的窗体文件(也就是 *frm)就可以了,你直接在你现在那个VB的程序里点添加文件就可以了如果没有 以前的窗体文件,那恐怕有点困难了实在不行你可以试下用shell函数。 找到你的以前编好的那个程序复制它的绝对路径,然后给一个按钮上写上代码Private Sub Command1_Click() shell "这个程序的絕对路径" End Sub 把代码里的 这个程序的绝对路径 换成你那个程序的绝对路径就可以了 使用VB附带的WebBrowser控件可以非常简单地设计出一个实用的浏览器。 首先加载“Microsoft Internet Controls”和“Mic...
只要有这个程序的窗体文件(也就是 *。frm)就可以了你直接在你现在那个VB的程序里点添加文件就可以了,如果没有 鉯前的窗体文件那恐怕有点困难了,实在不行你可以试下用shell函数 找到你的以前编好的那个程序,复制它的绝对路径然后给一个按钮仩写上代码Private Sub Command1_Click() shell "这个程序的绝对路径" End
你对这个回答的评价是
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。