父窗体与子窗体的问题

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

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

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

我写得代码出现的问题是如果form2窗体最大化,那么form3也最大化了。
...全文
459 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
把最大化属性关掉不行吗

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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