【问题标题】:VB6 - Create subMenuItems programmaticallyVB6 - 以编程方式创建子菜单项
【发布时间】:2016-03-16 00:02:24
【问题描述】:

我在一个 VB6 项目中工作,并且有一个现有的菜单,由菜单创建器创建。我无法以编程方式在 MenuItem 中插入 subMenu。

第一个菜单是文件。它包含两个菜单项:ChoiceExit

我想在运行时在 Choice 中插入查询的每一行(仅第一列)。

我的记录集运行良好,但我需要以下代码中的一些帮助:

Do While rs_choice.EOF = False
    'add column1 in Choice
    '~Something~ = rs_choice.Fields("column1").Value
    rs_choice.MoveNext
Loop 

PS : 没有一个 MenuItems 定义了索引。

有人可以帮我吗?

【问题讨论】:

标签: vb6 submenu programmatically-created


【解决方案1】:

使用设计器给Choice一个名为mnuDynamic的单个子项,给它一个索引0

循环记录集加载新项目:

Dim i as long

Do While rs_choice.EOF = False
    If (i > 0) Then Load mnuDynamic(i)

    mnuDynamic(i).Caption = rs_choice.Fields("column1").Value

    rs_choice.MoveNext
    i = (i + 1)
Loop

【讨论】:

  • 它似乎可以工作,但是当我尝试使用 Visible 属性时出现错误:the "visible" property can not be defined for this control。是不是因为它是动态菜单?
  • 我试过这个:If rs_choice.Fields("column2").Value = 0 Then mnuDynamic(i).Visible = True。这给了我以前的错误
  • 对我有用,只需在循环周围添加 if rs_choice.Fields("column1").Value <> 0) 并且根本不加载项目
  • +1。这在 VB6 用户指南 here adding menu controls at run time 下进行了描述
  • 你说得对,最好不要加载 subMenuItem 而不是加载它并将其可见属性设置为 false ;)
猜你喜欢
  • 2012-09-20
  • 2011-09-21
  • 2018-04-19
  • 1970-01-01
  • 2013-12-16
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 2013-02-17
相关资源
最近更新 更多