子窗体的工具栏能替换父窗体的工具栏吗?--解决了立即给分

hitxiang 2003-08-26 07:49:07
或者能实现 子窗体的菜单和父窗体的菜单栏同时存在!!
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxy2003 2003-08-26
  • 打赏
  • 举报
回复
UP 高人
liul17 2003-08-26
  • 打赏
  • 举报
回复
完全可以!

给你以下两个过程,已经够用了,一个是将子窗体的toolbar加到主窗体中的,一个是关闭子窗体时移除的,在子窗体Activate时调subTbl,deactivate和Unload时调Call subDelTbl(tlbItem)。即可实现,还有要在MdiForm中加入子窗体中用到的所有图片。

Global Const CON_TLBMAINCOUNT = 3

Public Sub subTbl(tlbItem As Object, Optional bImage As Boolean = True)
Dim i%, str$, j%
frmMain.Tag = tlbItem.Parent.Name
With frmMain.tlbMain.Buttons
For i = tlbItem.Buttons.Count To 1 Step -1
str = tlbItem.Buttons(i).Image
If bImage = True Then
If str <> "0" Then
.Add CON_TLBMAINCOUNT - 1, tlbItem.Buttons(i).Key, IIf(.Item("tlbExit").Caption = gsNULL, gsNULL, tlbItem.Buttons(i).Caption), , str
Else
.Add CON_TLBMAINCOUNT - 1, tlbItem.Buttons(i).Key, IIf(.Item("tlbExit").Caption = gsNULL, gsNULL, tlbItem.Buttons(i).Caption)
End If
Else
.Add CON_TLBMAINCOUNT - 1, tlbItem.Buttons(i).Key, IIf(.Item("tlbExit").Caption = gsNULL, gsNULL, tlbItem.Buttons(i).Caption)
End If
.Item(CON_TLBMAINCOUNT - 1).Visible = tlbItem.Buttons(i).Visible
.Item(CON_TLBMAINCOUNT - 1).Style = tlbItem.Buttons(i).Style
.Item(CON_TLBMAINCOUNT - 1).Enabled = tlbItem.Buttons(i).Enabled
.Item(CON_TLBMAINCOUNT - 1).Description = tlbItem.Buttons(i).Description
.Item(CON_TLBMAINCOUNT - 1).ToolTipText = tlbItem.Buttons(i).ToolTipText
If tlbItem.Buttons(i).Style = tbrDropdown Then
For j = 1 To tlbItem.Buttons(i).ButtonMenus.Count
.Item(CON_TLBMAINCOUNT - 1).ButtonMenus.Add j, tlbItem.Buttons(i).ButtonMenus(j).Key, tlbItem.Buttons(i).ButtonMenus(j).Text
Next j
End If

Next i
tlbItem.Visible = False
End With
End Sub
Public Sub subDelTbl(tlbItem As Object)
Dim i%
If frmMain.Tag <> tlbItem.Parent.Name Then Exit Sub
With frmMain.tlbMain.Buttons
If .Count = CON_TLBMAINCOUNT Then Exit Sub
For i = 1 To tlbItem.Buttons.Count
.Remove CON_TLBMAINCOUNT - 1
Next i
End With
End Sub


将子窗体中的 Button_click 设为 Public ,然后在主窗体中的 button_Click中加入类似下面的代码
select case button.key
case "XX" '主窗体中固有的 button

else case
主窗体.Activateform.tlbButton_click '子窗体中的 Button_Click (注:子窗体中的Button名称必须全为“tlbButton”)
end select

wumy_ld 2003-08-26
  • 打赏
  • 举报
回复
没有了
hitxiang 2003-08-26
  • 打赏
  • 举报
回复
还有别的方法吗?
wumy_ld 2003-08-26
  • 打赏
  • 举报
回复
子窗体的菜单和主窗体的菜单同时存在是不可能的,不过可以做到这种效果:在子窗体上把主窗体的菜单也做上,不过不用写代码,只需直接调用主窗体的代码就可以了,记得把主窗体的菜单事件从Private改为Public

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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