重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
看起来是鼠标按住不放情况下导致焦点还保持在新建线程的窗口,然后又循环导致焦点切来切去引起闪烁。
创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站建设、成都网站建设,塑造企业网络形象打造互联网企业效应。
试下在循环中的执行代码前加上 mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) '释放鼠标左键
Dim F1 As New Datasystem.Form2 '实例化窗体
For Each na As Form In Application.OpenForms '打开窗体的集合
If na.ProductName = F1.ProductName AndAlso na.Name = F1.Name 0 Then '判断程序集的产品名称和窗体名称是否已存在打开的窗体中
If na.WindowState = FormWindowState.Minimized Then '判断窗体是否最小化
na.WindowState = FormWindowState.Normal '还原窗体
End If
na.Activate() '激活窗体
Return '返回
End If
Next
F1.Show() '如果没有打开的窗体中未找到,重新打开窗体
给你一个思路,
1把A窗口(比如是FormA)要控制的控件、成员变量、方法、属性等定义为Public
2然后重写B窗口(FormB)的构造函数,增加一个成员变量,使之用来保存A窗口的引用,比如
Public Partial Class FormB
Private _formA As FormA
Public Sub New(formA As FormA)
_formA = formA
End Sub
'...
End Class
然后我们在FormB中就可以用_formA来控制FormA的内容了
在A中打开B窗口可以这样:
Dim B As New FormB(Me)
B.Show()