将属性保存到 PropertyBag 中

在 ActiveX 的最终用户浏览文档时,他们可能需要填充应用程序的某些文本输入框。当这些用户再一次回到该文档时,为了节省他们的时间,可以预先把这些输入保存到 PropertyBag 中。

在下列示例中,将一条 PropertyChanged 语句插入到 TextBox 控件 (txtFirstDoc) 的 Change 事件中。它使 Internet Explorer 提示用户保存修改。如果用户确认了保存操作,这段代码将把属性值保存到 PropertyBag 中。

详细信息 关于 PropertyBag 的详细说明,请参阅“建立 ActiveX 控件”的“保存控件的属性”。

注意 本主题是创建示例 ActiveX 文档的步骤之一。如果要从头开始学习有关的内容,选择“创建 ActiveX 文档”主题。

要读写 PropertyBag 中保存的属性值

  1. 在“工程资源管理器”窗口中,双击 FirstDoc 图标,它的设计器回到桌面的最前面。

  2. 双击 TextBox (txtFirstDoc) 控件,浏览它的代码。

  3. 在“代码”窗口中,从 txtFirstDoc 的事件下拉列表中单击“Change”,添加一条 PropertyChanged 语句,如下所示:
    Private Sub txtFirstDoc_Change()
    PropertyChanged
    End Sub
    
  4. 在 UserDocument 对象的 WriteProperties 事件中加入下面一段代码:
    Private Sub UserDocument_WriteProperties _
    (PropBag As VB.PropertyBag)
    PropBag.WriteProperty "StrDocProp", _
    txtFirstDoc.Text, "Hello"
    Debug.Print "WriteProperties"
    End Sub
    
  5. 第 4 步中的代码把 TextBox 控件的 Text 属性值存入 PropertyBag 中。为了获取保存的属性值,在 ReadProperties 事件中加入如下代码:
    Private Sub UserDocument_ReadProperties _
    (PropBag As VB.PropertyBag)
    txtFirstDoc.Text = _
    PropBag.ReadProperty("StrDocProp", _ 
    "Hello")
    Debug.Print "ReadProperties"
    End Sub
    

运行工程

现在可以读写 PropertyBag 中的属性值,下面运行工程来证实这一点。

  1. 按 F5 键运行工程。

  2. 单击“地址”文本输入框,并在其中输入文件 FirstDoc.vbd 的路径。

  3. 在空白的 TextBox 控件中输入文字,例如一个人名。

  4. 在“文件”菜单中,单击“关闭”,Internet Explorer 将弹出一个对话框,询问是否愿意保存所作的改变。单击“”。

  5. 再次运行 Internet Explorer。

  6. 单击“地址”文本输入框,并在其中键入文件 FirstDoc.vbd 的路径。第 4 步输入的文字将显示在 TextBox 控件中。

利用 PropBag 提供的 WriteProperties 和 ReadProperties 事件,可以轻松地保存对象的数据。

循序渐进

本主题为示例 ActiveX 文档创建过程中的步骤之一。

请参阅
到下一步 “为 ActXDoc 工程添加菜单”
从头开始 “创建 ActiveX 文档”

为 ActXDoc 工程添加菜单

使用菜单编辑器可以为 ActiveX 文档添加菜单。因为 ActiveX 文档不可能拥有单独的菜单,所以它的菜单总是被合并到用来浏览 ActiveX 文档的应用程序的菜单中。所以,在为 ActiveX 文档添加菜单时,必须考虑菜单协议。

当用户看到一个新的 ActiveX 文档时,可能对该文档的来源一无所知(或者只知道这是一个 ActiveX 文档)。为了弥补这个缺陷,通常应该在 ActiveX 文档中包含一个“关于”窗体。

注意 本主题是创建示例 ActiveX 文档的步骤之一。如果要从头开始学习有关的内容,选择“创建 ActiveX 文档”主题。

要为 FirstDoc ActiveX 文档添加菜单和“关于”对话框

  1. 在“工程”菜单中,单击“添加窗体”。

  2. 在“添加窗体”对话框中,双击“关于对话框”图标,在工程中添加一个“关于”对话框窗体。

  3. 按照下表设置窗体和控件的“标题”属性。
    对象 标题
    frmAbout “关于 FirstDoc”
    lblTitle “FirstDoc ActiveX 文档”
    lblVersion “1.0 版”
    lblDescription “ActiveX 文档”

  4. 删除名为 lblDisclaimer 的 Labe 控件。

  5. 在“工程资源管理器”窗口中双击“FirstDoc”,使该文档的设计器处于桌面的最前面。

  6. 单击 FirstDoc 设计器以选中它;在“工具”菜单中,单击“菜单编辑器”显示菜单编辑器对话框。

  7. 单击“标题”文本框并输入 "&Help"。

  8. 单击“名称”文本框并输入 "mnuHelp"。

  9. 单击“协调位置”框,单击“居右”。

  10. 单击“下一个”按钮创建新的菜单项。

  11. 在“标题”文本框中输入 "About FirstDoc"。

  12. 在“名称”文本框中输入 "mnuAbout"。

  13. 单击向右的箭头按钮,使菜单项缩进。

  14. 单击“确定”。

  15. 双击 FirstDoc 的设计器,使它的“代码”窗口出现在桌面的最前面。

  16. 在 mnuAbout 的 Click 事件中加入下列代码:
    Private Sub mnuAbout_Click()
    frmAbout.Show vbModal
    End Sub
    

运行工程

在为 UserDocument 对象添加了菜单之后,可以运行该工程,在 Internet Explorer 中浏览 ActiveX 文档,并查看所加的菜单。

  1. 按 F5 键运行工程。

  2. 在 Internet Explorer 中,在“地址”文本框中输入文件 FirstDoc.vbd 的路径,或从下列列表中选择以前输入的地址。

  3. 在 Internet Explorer 的命令栏中,单击“帮助”菜单项,在列出的菜单项中将出现“FirstDoc Help”菜单项。

  4. 单击“About FirstDoc”即可看到新的“关于”对话框。

循序渐进

本主题为示例 ActiveX 文档创建过程中的步骤之一。

请参阅
到下一步 “UserDocument 对象的存活期”
从头开始 “创建 ActiveX 文档”