父窗体与子窗体的问题

wubaiyong 2005-02-21 10:52:33
有三个窗体

form1 父窗体
form2 子窗体
form3 子窗体

当点击form1的按钮时弹出form2不并设其为子窗体。问题是点击form2窗体中的一个按钮弹出form3并设置它为form1的子窗体。

我写得代码出现的问题是如果form2窗体最大化,那么form3也最大化了。
...全文
437 18 打赏 收藏 举报
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zzzjaychung 2005-03-29
在FORM2中先生成一个FORM1的实例,
在FORM2中生成FORM3时,调用FORM1的实例来生成,而不用FOMR2自己生成。
这样FORM3就是FORM1的子窗体了。
  • 打赏
  • 举报
回复
gxboy 2005-03-18
frm2 frm3
--------

sub new(forms as frm1)
end sub



frm1中这样写 dim frm2 as new frm2(me),frm2中就有frm1对象了,然后自行操作。
  • 打赏
  • 举报
回复
tch789 2005-03-18
dim frm as new frmform1
frm.mdiparent=me
frm.show()
  • 打赏
  • 举报
回复
hw_lang 2005-03-17
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
If frm_backdata Is Nothing OrElse frm_backdata.IsDisposed Then
frm_backdata = New FrmBackData
frm_backdata.Show()
Else
frm_backdata.Activate()
frm_backdata.WindowState = FormWindowState.Normal
End If
End Sub
  • 打赏
  • 举报
回复
flyinskybkc 2005-03-17
6楼的吧,这个应该就是正解了
  • 打赏
  • 举报
回复
Svny 2005-03-16
form3.ShowDialog(form1);
  • 打赏
  • 举报
回复
wubaiyong 2005-02-21
VS.Net2003
  • 打赏
  • 举报
回复
amendajing 2005-02-21
mark
  • 打赏
  • 举报
回复
T2 2005-02-21
你的VS.Net是2002?我的是VS.Net2003
  • 打赏
  • 举报
回复
wubaiyong 2005-02-21
用了hamadou(闵峰)的代码,依旧出现form2窗体最大化,form3也最大化了的问题
  • 打赏
  • 举报
回复
T2 2005-02-21
同意楼上,form2窗体最大化,form3也最大化了的问题我这里没有出现,应该不是Bug
  • 打赏
  • 举报
回复
hamadou 2005-02-21
主要是在form2中要设置form3的父窗体是form1的实例:
Public Sub New(ByVal a As Object) ‘a是form1中创建form2的实例时传递过来的参数me
MyBase.New()

'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()

'在 InitializeComponent() 调用之后添加任何初始化
m = CType(a, Form1)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim newform As New Form3()
newform.MdiParent = m
newform.Show()
End Sub
  • 打赏
  • 举报
回复
心情解码 2005-02-21
:)


--
  • 打赏
  • 举报
回复
3tzjq 2005-02-21
在form2中写:
private frm as frmMian

Public Sub New(form3PF as frmMain)
MyBase.New()

InitializeComponent()

frm = form3PF

End Sub

然后在form1中实例化form2时:dim frm as new form2(me)

这样就可以在form2中设form3为form1的子窗体了:
dim frm as new form3
frm.parent=frm
frm.show

至于最大化的问题,这是MDI容器的一个Bug,都是这样的。
  • 打赏
  • 举报
回复
Kanderliu 2005-02-21
up
  • 打赏
  • 举报
回复
simon8181 2005-02-21
up
  • 打赏
  • 举报
回复
jackie615 2005-02-21
form3.ShowDialog(form1);

  • 打赏
  • 举报
回复
hidejay 2005-02-21
把最大化属性关掉不行吗
  • 打赏
  • 举报
回复
发帖
VB

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
帖子事件
创建了帖子
2005-02-21 10:52
社区公告
暂无公告