窗体打开问题

jekexys2004 2006-12-16 09:55:24
当我点击按钮打开另一窗体(form2),如原来已打开则显示在最前面?

我现在这样操作无法达到我要求,每点一次打开一个,结果打开很多相同的窗体,请高手指点迷津--谢谢!!

Dim dlg As New form2
dlg.Show()

...全文
144 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
precipitant 2006-12-17
  • 打赏
  • 举报
回复
我与
5653325(等待开刃的刀)
的方法相同。
只在此山中 2006-12-16
  • 打赏
  • 举报
回复
Private Sub button1_Click(sender As Object, e As System.EventArgs)
Dim f As Form
For Each f In Me.OwnedForms
If TypeOf f Is Form2 Then
'窗体存在则显示
f.Show()
f.Focus()
Return
End If
Next f
'不存在新建窗体显示
Dim f2 As New Form2()
Me.AddOwnedForm(f2)
f2.Owner = Me
f2.Show()
End Sub

'Form2加Owner属性,加form_closing事件处理代码
Public Class Form2
Inherits System.Windows.Forms.Form

Private label1 As System.Windows.Forms.Label
Public Owner As Form

'省略

Private Sub Form2_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs)
Owner.RemoveOwnedForm(Me)
End Sub 'Form2_Closing
End Class
ou108 2006-12-16
  • 打赏
  • 举报
回复
Dim dlg As New form2
dlg.ShowDialog()
踏平扶桑 2006-12-16
  • 打赏
  • 举报
回复
2个窗体 一个是FROM1(添加一个BUTTON) 一个是FORM2,新建一模块

---------------模块内容-------------------
Module Module1
Public Frm2Show As Boolean
End Module

------------------------------------------

---------------FORM1内容-------------------
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Frm2Show Then
Form2.Activate()
Else
Form2.Show()
End If
End Sub
End Class
------------------------------------------


---------------FORM2内容-------------------
Public Class Form2

Private Sub Form2_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
Frm2Show = False
End Sub

Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Frm2Show = True
End Sub
End Class

------------------------------------------
jekexys2004 2006-12-16
  • 打赏
  • 举报
回复
To:zdbb(辉辉) ( ) 信誉:100 Blog

你方法基本可以达到我的要求,但Form2永远显示在Form1前面,除非我点最小化,可以做到我点下Form1,则From2在Form1后面吗?而你现在是Form2变成灰色。


因为我直接这样是可以做到的
Dim dlg As New form2
dlg.Show()
但这样就会一直打开M多个窗体,

楼顶的dlg.ShowDialog()不行这样做必须关闭Form2才能打开Form3,我要可以同时打开的
jekexys2004 2006-12-16
  • 打赏
  • 举报
回复
楼上的你没判断窗体打开没,怎么知道窗体已打开?还有Dim f As Form什么意思?Form指有按钮的窗体吗?

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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