VB.net中显示另一个窗体的问题

xuehf 2012-04-24 02:14:19
VB.Net编写的类项目中,有两个窗体
窗体一: frmA 查找按钮cmdFind
窗体二:frmB 显示按钮cmdShow

窗体一frmA中的按钮
Private Sub cmdFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFind.Click
dim frm as new frmB
frm.showDialog()
end sub

点击窗体frmA的查找按钮后,窗体frmB显示出来,并且frmA依然显示,只是被frmB盖住了,屏幕上看不到了,
现在在窗体frmB中的显示按钮,如何将frmA显示出来?代码怎么写?
...全文
410 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝海 2012-05-02
  • 打赏
  • 举报
回复
我的理解是:
1、frmA 是查找结果窗体;
2、frmB 是查找条件窗体;

如果是这样,frmB 用模式窗体也一样,即 frmB.ShowDialog()

而你的具体查找工作还是要做在 frmA 的代码体里;frmB 只不过是返回一个查询条件而已;
代码比如:

public class frmA
private findExpr as string '这里存储条件表达式

public sub setFindExpr(byval sFindExpr as string)
me.findExpr = sFindExpr
end sub

private sub find()
'先调用 frmB 返回查询条件
dim iRes as DialogResult
formB = new frmB(me) '将 frmA 传给 formB 窗体实例
iRes = formB.ShowDialog()
if iRes<>DialogResult.OK THEN
exit sub
end if
'根据 findExpr 进行具体查询工作
end sub
end class


public class frmB
private formA as frmA

public sub new(byref formA as form)
me.formA = formA
end sub

private sub cmdShow_Click(byval sender as object, byval e as EventArgs) handlers me.cmdShow.click
me.formA.setFindExpr = "" '这里需要将查询条件赋给 formA,
'以便关闭当前条件窗体时,formA 直接以此条件进行查找;
me.DialogResult = DialogResult.OK
me.close
end sub
end class
ccccffff 2012-05-02
  • 打赏
  • 举报
回复
form.show
qiuyongaaa 2012-04-28
  • 打赏
  • 举报
回复
那就用frm.show方法,用showDialog显示的窗体,母窗体是不可能显示在字窗体前面的。
cnwin 2012-04-28
  • 打赏
  • 举报
回复
楼主是以有模式方式显示的frmB,所以在frmB中不会让frmA置前。要想做到,只有非模式方式显示(show)。
wepwep 2012-04-28
  • 打赏
  • 举报
回复
无法实现吧,你用的是showDialog,响应式窗体是肯定在父窗体上面的,无法置后的。
无涯大者 2012-04-24
  • 打赏
  • 举报
回复
通过构造函数传值。
bdmh 2012-04-24
  • 打赏
  • 举报
回复
为 frmB增加构造函数

frmB(FormA frm)传入formA,这样就可以控制formA了

16,555

社区成员

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

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